|
Помогите запросом. туплю. | ☑ | ||
---|---|---|---|---|
0
temsa
04.06.13
✎
19:55
|
ТекстЗапроса = "ВЫБРАТЬ
|ТоварыНаСкладахОстатки.Номенклатура, |ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ |РегистрНакопления.ТоварыНаСкладах.Остатки(&текдата) КАК ТоварыНаСкладахОстатки"; Возврат ТекстЗапроса; Как сделать в одном запросе остаток на текущую дату и остаток на начало месяца??? |
|||
1
PR
04.06.13
✎
19:59
|
Памажите кто чем может?
ОстаткиИОбороты или ОБЪЕДИНИТЬ. |
|||
2
Cyberhawk
04.06.13
✎
20:00
|
(0) дождись первого числа месяца. Выполни запрос. Выведи два раза. Результат будет достигнут.
|
|||
3
temsa
04.06.13
✎
20:03
|
(1) Я так и думал. Что без остатки и оброты не обойтись
|
|||
4
PR
04.06.13
✎
20:04
|
(3) Странно. А я вроде по-русски написал "или ОБЪЕДИНИТЬ" :))
|
|||
5
temsa
04.06.13
✎
20:06
|
(4) да понял понял. ОБъединять я еще не сильно научился.
|
|||
6
Dionis Sergeevich
04.06.13
✎
20:07
|
или соединение - отгда с параметрами Период и НачалоМесяца(период)
|
|||
7
Dionis Sergeevich
04.06.13
✎
20:09
|
(5) А соединять научился? =)) wiki:Join_(SQL) вот если что. А вообще если не силен в запросах - велком http://sql-ex.ru/ Учебные начать можно с гуглом, сложность нарастает постепенно. Решишь рейтинговые - считай научился
|
|||
8
PR
04.06.13
✎
20:17
|
(5) Не слушай (6), он ерунду какую-то тебе толкает.
|
|||
9
Dionis Sergeevich
04.06.13
✎
20:22
|
(8) А то как же. Сижу вредю всем, ерунду толкаю.
|
|||
10
Dionis Sergeevich
04.06.13
✎
20:24
|
+(9) соединение оно и побыстрее объединения будет =))
|
|||
11
PR
04.06.13
✎
20:25
|
(10) Напиши текст запроса
|
|||
12
Vesa
04.06.13
✎
20:26
|
Если нужны только остатки, без оборотов, то лучше объединить. Говорят, таблица ОстаткиИОбороты "тяжелая".
|
|||
13
Dionis Sergeevich
04.06.13
✎
20:35
|
ЫБРАТЬ
а.Номенклатура, а.КоличествоОстаток как ОстатокНаНачалоМесяца б.КОличествоОстаток как ОстатокНаДату ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&текдата) КАК а левое соединение РегистрНакопления.ТоварыНаСкладах.Остатки(&текдата2) как б по а.Номенклатура = б.Номенклатура |
|||
14
ДенисЧ
04.06.13
✎
20:36
|
(13) у тебя в первом слове буква Р лишняя
|
|||
15
temsa
04.06.13
✎
20:40
|
а текдата я должен как параметр определять или достаточно как переменная ?
|
|||
16
Dionis Sergeevich
04.06.13
✎
20:41
|
(15) ТекДата2 - параметр - Дата Остатка, ТекДата - параметр - начало месяца
|
|||
17
PR
04.06.13
✎
20:44
|
(13) Я так и думал.
Садись, два. |
|||
18
PR
04.06.13
✎
20:51
|
Все больше склоняюсь к мнению, что стоит добавить в свои тесты задачку на понимание разницы между соединением и объединением :))
|
|||
19
Dionis Sergeevich
04.06.13
✎
20:51
|
(17) (17) А что тут думать то? Все бы так сделали. Ибо самый простой и логичный способ
|
|||
20
PR
04.06.13
✎
20:53
|
(19) Ну да, логично, зачем думать :))
Что ты получишь, если есть остаток на конец 10 рублей, но нет остатка на начало? |
|||
22
zak555
04.06.13
✎
20:56
|
где третий вариант ?
|
|||
23
zak555
04.06.13
✎
20:59
|
с соединением
|
|||
24
PR
04.06.13
✎
21:00
|
(22) Он дебильный, хотя и возможный через задницу, поэтому я его не привел.
|
|||
25
zak555
04.06.13
✎
21:02
|
(24) какой дебильный ?
|
|||
26
Dionis Sergeevich
04.06.13
✎
21:03
|
(25) С полным соединением и выбором номенклотуры из левой или правой части запроса по значению NULL
|
|||
27
Dionis Sergeevich
04.06.13
✎
21:04
|
Ну да не предусмотрел отсутствие остатка. Пойду учиться
|
|||
28
zak555
04.06.13
✎
21:04
|
(36) так объединение -- тоже тупость =)
|
|||
29
PR
04.06.13
✎
21:05
|
(28) Почему? Объединение в данном случае вполне себе гуд.
|
|||
30
Dionis Sergeevich
04.06.13
✎
21:06
|
(29) Обходить запрос проще, цикл +- в 2 раза меньше
|
|||
31
zak555
04.06.13
✎
21:06
|
(29) чем виртуальная таблица ОстаткиИОбороты не гуд ?
|
|||
32
zak555
04.06.13
✎
21:06
|
(30) ??
|
|||
33
PR
04.06.13
✎
21:07
|
Если нужна запись одна, то не вопрос, все помещается во вложенный запрос и группируется по номенклатуре.
|
|||
34
PR
04.06.13
✎
21:08
|
(31) Я не говорил, что она не гуд.
Но не уверен, что будет быстрее, поскольку в ней еще речь про обороты. Но может и будет быстрее, ХЗ. |
|||
35
zak555
04.06.13
✎
21:09
|
(33) вложенный запрос -- это разве хорошо ?
|
|||
36
zak555
04.06.13
✎
21:09
|
(34) так у тебя будет Приход, РАсход, Оборот
в 0 ггруппировки нет |
|||
37
PR
04.06.13
✎
21:10
|
(35) Плохо наверное, но как иначе, если использовать объединение?
|
|||
38
PR
04.06.13
✎
21:10
|
(36) Так а зачем мне оборот?
|
|||
39
zak555
04.06.13
✎
21:11
|
(37) используй соединение =)
|
|||
40
zak555
04.06.13
✎
21:12
|
(38) ты его в выборке полей не вибирай
|
|||
41
PR
04.06.13
✎
21:14
|
(39) Охрененно, пойду подумаю ад этой глубокой мыслью :))
|
|||
42
PR
04.06.13
✎
21:14
|
(40) И это поможет?
|
|||
43
zak555
04.06.13
✎
21:15
|
ВЫБРАТЬ
ЕСТЬNULL(ТоварыНаСкладахОстаткиДата1.Номенклатура, ТоварыНаСкладахОстаткиДата2.Номенклатура) КАК Номенклатура, ТоварыНаСкладахОстаткиДата1.КоличествоОстаток КАК КоличествоОстатокНаДату1, ТоварыНаСкладахОстаткиДата2.КоличествоОстаток КАК КоличествоОстатокНаДату2 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата1, ) КАК ТоварыНаСкладахОстаткиДата1 ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата2, ) КАК ТоварыНаСкладахОстаткиДата2 ПО ТоварыНаСкладахОстаткиДата1.Номенклатура = ТоварыНаСкладахОстаткиДата2.Номенклатура |
|||
44
PR
04.06.13
✎
21:15
|
(43) Спасибо, КЭП :))
|
|||
45
zak555
04.06.13
✎
21:16
|
(44) не за что
|
|||
46
zak555
04.06.13
✎
21:26
|
ты предлагал сделать так ?
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, СУММА(ВложенныйЗапрос.КоличествоОстатокНаДату1) КАК КоличествоОстатокНаДату1, СУММА(ВложенныйЗапрос.КоличествоОстатокНаДату2) КАК КоличествоОстатокНаДату2 ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстаткиДата1.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиДата1.КоличествоОстаток КАК КоличествоОстатокНаДату1, 0 КАК КоличествоОстатокНаДату2 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата1, ) КАК ТоварыНаСкладахОстаткиДата1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстаткиДата2.Номенклатура, 0, ТоварыНаСкладахОстаткиДата2.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата2, ) КАК ТоварыНаСкладахОстаткиДата2) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура |
|||
47
zak555
04.06.13
✎
21:28
|
и так ?
ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоОстатокНаДату1, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоОстатокНаДату2 ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, , , ) КАК ТоварыНаСкладахОстаткиИОбороты |
|||
48
temsa
05.06.13
✎
05:52
|
Спасибо господа! Просветили. Вроде бы эементарно вот пока не могу от семерошного запроса отойти полностью
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |