![]() |
|
v7: Прямой запрос - нужно добавить группировку по датам | ☑ | ||
---|---|---|---|---|
0
Vladal
06.07.12
✎
11:27
|
Есть прямой запрос, в который надо добавить группировку по датам за период. Как - не знаю, не работал с прямыми запросами.
ТекстЗапроса = " |SELECT ПартииТоваровОстатки.Склад [Склад $Справочник.МестаХранения] | , Номенклатура.PARENTID [ГруппаТовара $Справочник.Номенклатура] | , ПартииТоваровОстатки.Товар [Товар $Справочник.Номенклатура] | , ПартииТоваровОстатки.Размер [Размер $Справочник.Размеры] | , Sum(ПартииТоваровОстатки.ОстатокТовараОстаток) СуммаОстатокТовараОстаток | , Sum(ПартииТоваровОстатки.СтоимостьОстаток) СуммаСтоимостьОстаток | , Sum(ПартииТоваровОстатки.ПродСтоимостьОстаток) СуммаПродСтоимостьОстаток | , Sum(ПартииТоваровОстатки.БалСтоимостьОстаток) СуммаБалСтоимостьОстаток |FROM $РегистрОстатки.ПартииТоваров(,, | #Sklad# #Razmer#, | (Склад, Товар, Размер), | (ОстатокТовара, Стоимость, ПродСтоимость, БалСтоимость)) AS ПартииТоваровОстатки | LEFT OUTER JOIN $Справочник.Номенклатура AS Номенклатура ON ПартииТоваровОстатки.Товар = Номенклатура.ID |#Group# |GROUP BY ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер |ORDER BY ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер |"; Что дописать к этому запросу, в смысле какие буквы, в каком порядке и в каком месте запроса? |
|||
1
Гефест
06.07.12
✎
11:29
|
Какие даты нужно добавить?
|
|||
2
Vladal
06.07.12
✎
11:30
|
За период по дням. Например, за месяц. Сейчас этот запрос показывает остатки только на ТА
|
|||
3
Mikeware
06.07.12
✎
11:32
|
И какие могут быть "остатки по дням", если ты берешь итог на дату?
|
|||
4
Vladal
06.07.12
✎
11:38
|
(3) Я ничего не беру. Это осталось от предшественника, а с прямыми я не работал.
Вот как этот запрос допилить до требуемой задачи? |
|||
5
Ёпрст
гуру
06.07.12
✎
11:40
|
(4) взять ВТ ОстанкиИОбороты с нужной периодичностью и.. если нужны все даты - левое соединение таблички с датами с этой ВТ.
А можно и через хранимку - кучу запросов на вычисление итога. |
|||
6
Vladal
06.07.12
✎
11:46
|
(5) Более простой способ есть? Или приведенный запрос - и есть самый простой. но с получением на ТА?
|
|||
7
Ёпрст
гуру
06.07.12
✎
11:47
|
(6) приведенный запрос - это просто итоги измерений на конкретную дату.
|
|||
8
Ёпрст
гуру
06.07.12
✎
11:48
|
||||
9
viktor_vv
06.07.12
✎
11:49
|
(6) Так ВТ ОстаткиИОбороты с периодичностью День и есть самый простой.
|
|||
10
Гефест
06.07.12
✎
11:53
|
ВТ покажет только на те дни, когда были движения. Если нужно на все дни, то она не поможет
|
|||
11
Vladal
06.07.12
✎
11:55
|
(7) Ну не в цикле же?
И как написать? ДЛя меня это китайский язык |
|||
12
Vladal
06.07.12
✎
11:56
|
т.е. простым способом никак?
обычный запрос в этой шизанутой базе вот уже 40 минут работает и ни конца, ни края. |
|||
13
Ёпрст
гуру
06.07.12
✎
11:56
|
(10) поможет - соединением с табличкой дат..
хотя, там тоже есть "ньюансик" |
|||
14
Vladal
06.07.12
✎
11:58
|
Ёпрст4, мы простых путей не ищем.
Подсознание написало сначала "мы пустых путей..." |
|||
15
viktor_vv
06.07.12
✎
12:03
|
Ну примерно так, это с датами на которые были остатки.
ТекстЗапроса = " |SELECT ПартииТоваровОстатки.Склад [Склад $Справочник.МестаХранения] | , Номенклатура.PARENTID [ГруппаТовара $Справочник.Номенклатура] | , ПартииТоваровОстатки.Товар [Товар $Справочник.Номенклатура] | , ПартииТоваровОстатки.Размер [Размер $Справочник.Размеры] | , ПартииТоваровОстатки.Период [День $Дата] | , Sum(ПартииТоваровОстатки.ОстатокТовараКонечныйОстаток) СуммаОстатокТовараОстаток | , Sum(ПартииТоваровОстатки.СтоимостьКонечныйОстаток) СуммаСтоимостьОстаток | , Sum(ПартииТоваровОстатки.ПродСтоимостьКонечныйОстаток) СуммаПродСтоимостьОстаток | , Sum(ПартииТоваровОстатки.БалСтоимостьКонечныйОстаток) СуммаБалСтоимостьОстаток |FROM $РегистрОстаткиОбороты.ПартииТоваров(:фдДатаНач,:фдДатаКон~, | День, | , | , | #Sklad# #Razmer#, | (Склад, Товар, Размер), | (ОстатокТовара, Стоимость, ПродСтоимость, БалСтоимость)) AS ПартииТоваровОстатки | LEFT OUTER JOIN $Справочник.Номенклатура AS Номенклатура ON ПартииТоваровОстатки.Товар = Номенклатура.ID |#Group# |GROUP BY ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер | , ПартииТоваровОстатки.Период |ORDER BY ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер |"; Мог где-нибудь накосячить, но принцип понятен. :фдДатаНач и :фдДатаКон смотри как параметры устанавливаются. |
|||
16
Гефест
06.07.12
✎
12:04
|
(13) Остатки на дату все равно пустыми будут, так что нюанс там большой
|
|||
17
Mikeware
06.07.12
✎
12:07
|
(16) Ну это достаточно просто обрабатывается уже осле выгрузки в ТЗ.
а если этот отчет тупо выводит результат - то даже при выводе. |
|||
18
Vladal
06.07.12
✎
12:10
|
(15) Спасибо. Пробую.
|
|||
19
Ёпрст
гуру
06.07.12
✎
12:11
|
(16) зато быстродействие выше, чем отдельный запрос на каждую дату..
Да и, результат не проблема обработать |
|||
20
Vladal
06.07.12
✎
12:32
|
(19) Совсем на каждую дату может, и не надо. Бухгалтерия - не всегда триумф математики над разумом.
|
|||
21
Vladal
06.07.12
✎
12:46
|
(15) Получилось. Спасибо. Бушки проверяют отчет.
|
|||
22
Vladal
06.07.12
✎
13:00
|
ага. а как теперь упорядочить по дате? Я пишу:
|GROUP BY ПартииТоваровОстатки.День, ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер | , ПартииТоваровОстатки.Период |ORDER BY ПартииТоваровОстатки.День, ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер и получаю State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'День'. |
|||
23
viktor_vv
06.07.12
✎
13:02
|
|ORDER BY ПартииТоваровОстатки.Период, ПартииТоваровОстатки.Склад
День это алиас. А поле Период. |
|||
24
Vladal
06.07.12
✎
13:02
|
А! Ступил.
|GROUP BY ПартииТоваровОстатки.Период, ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер |ORDER BY ПартииТоваровОстатки.Период, ПартииТоваровОстатки.Склад | , Номенклатура.PARENTID | , ПартииТоваровОстатки.Товар | , ПартииТоваровОстатки.Размер |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |