0
- 10.09.2012 - 09:49
|
Приветствую, Господа! Имеется прямой запрос к ДБФ файлу. Нужно получить что-то типа ИТОГИ ПО в 1с 8 ТекстЗапроса = "SELECT |РегПродажа.SP2224 as Количество, |СпрНомен.DESCR as Номенклатура, |SUM(РегПродажа.SP2224) as СуммаКоличество, |FROM | _RA2228Old РегПродажа |Left Join _SC156Old СпрНомен ON РегПродажа.SP2218 = СпрНомен.ID |GROUP BY ROLLUP(СпрНомен.DESCR)"; Вся эт беда выдает вот это сообщение: State 42S22, native 806, message [Microsoft][ODBC Visual FoxPro Driver]SQL: Column ' ' is not found Без |GROUP BY ROLLUP(СпрНомен.DESCR) всё работет хорошо. Вопрос собственно в том, чтобы получить итоги по Номенклатуре (СпрНомен.DESCR) по типу "ИТОГИ ПО Номенклатура" в 8-ке. | |
1
- 10.09.2012 - 09:50
| Перед FROM запятой естественно нет | |
2
- 10.09.2012 - 10:19
| Может, не издеваться над провайдером, а посчитать итоги на клиенте? | |
3
- 10.09.2012 - 10:20
|
ввобще не понятно, зачем в запросе есть и РегПродажа.SP2224 as Количество, и SUM(РегПродажа.SP2224) as СуммаКоличество, не выкинуть ли РегПродажа.SP2224 as Количество. Зачем оно? | |
4
- 10.09.2012 - 10:31
|
2-Sadovnikov > Смысл в том, чтобы сделать запрос наподобие запроса в отчете Анализ продаж, а там группировка в запросе. Интересует именно возможность использовать ROLLUP или CUBE, или что-то подобное именно в прямом запросе. Извините за злоупотребление словом Запрос | |
5
- 10.09.2012 - 10:32
| 4-andertaletz > Так я и спрашиваю - зачем считать это именно в запросе? Почему не на клиенте, при выводе отчета? | |
6
- 10.09.2012 - 10:33
| 3-Удар копытом > Благодарю за заботу, истину глаголите, но вопрос немного не в этом. Текст запроса - это небольшой кусочек из более крупного запроса. | |
7
- 10.09.2012 - 10:37
| 5-Sadovnikov >Очень хочется "подсунуть" Анализу продаж свой запрос (не факт, кстати, что получится), и не шибко заморачиваться со стандартным выводом этого отчета в зависимости от группировок и множественных фильтров. (Оговорюсь сразу - база не SQL) | |
8
- 10.09.2012 - 10:37
|
(6) ну если там есть еще что-то, то может его там быть не должно.Там должны быть только то, что группируется. по крайней мере в т-скл SELECT a, b, c, SUM FROM T GROUP BY ROLLUP (a,b,c); | |
9
- 10.09.2012 - 10:47
|
8-Удар копытом >SELECT | _RA2228Old.SP2227 SUM |FROM | _RA2228Old |GROUP BY ROLLUP(_RA2228Old.SP2227) State 42S22, native 806, message [Microsoft][ODBC Visual FoxPro Driver]SQL: Column ' ' is not found | |
10
- 10.09.2012 - 10:48
| Колонка есть 100%) | |
11
- 10.09.2012 - 10:51
|
не, в примере SUM это не просто SUM ,а функция типа SELECT a, b, c, SUM(d) | |
12
- 10.09.2012 - 10:53
| и понятно, что одно поле должно быть числовым, по которому идет SUM, и хотя бы одно еще группировочное | |
13
- 10.09.2012 - 10:55
| и это соответствует тому что ты писал в заголовке, только без |РегПродажа.SP2224 as Количество, | |
14
- 10.09.2012 - 10:57
|
Интересен факт, что SELECT | _RA2228Old.IDDOC, | SUM(_RA2228Old.SP2227) |FROM | _RA2228Old |GROUP BY ROLLUP(_RA2228Old.IDDOC) дает тоже самое State 42S22, native 806, message [Microsoft][ODBC Visual FoxPro Driver]SQL: Column ' ' is not found | |
15
- 10.09.2012 - 11:01
|
а так? SELECT | _IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY ROLLUP(IDDOC) | |
16
- 10.09.2012 - 11:05
|
К моей печали SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY ROLLUP(IDDOC) Всё та же пижня | |
17
- 10.09.2012 - 11:07
| Есть подозрение что в SQL версии это заработает, но вот как заставить файловую версию это скушать? | |
18
- 10.09.2012 - 11:14
|
SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old Отрабатывает замечательно | |
19
- 10.09.2012 - 11:19
|
а без роллапа? |GROUP BY IDDOC,SUM(SP2227) | |
20
- 10.09.2012 - 11:19
| без суммы тоже | |
21
- 10.09.2012 - 11:24
|
Можно начать подбирать синтаксис:)) GROUP BY IDDOC WITH ROLLUP | |
22
- 10.09.2012 - 11:24
|
SELECT | IDDOC |FROM | _RA2228Old |GROUP BY IDDOC,SUM(SP2227) State 42S22, native 806, message [Microsoft][ODBC Visual FoxPro Driver]SQL: Column 'IDDOC' is not found | |
23
- 10.09.2012 - 11:26
|
(22) не, SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY IDDOC | |
24
- 10.09.2012 - 11:28
|
21-Удар копытом > Пробовал, получил сей результат Command contains unrecognized phrase/keyword | |
25
- 10.09.2012 - 11:38
|
23-Удар копытом > Работает, группирует, суммирует. Но получаем только группы, т.е. что-то типа Наименование | Кол-во. ------------------------ Дырка от бублика | 4 шт. А надо Наименование | Кол-во. ------------------------ Дырка от бублика | 4 шт. Дырка от бублика | 1 шт. Дырка от бублика | 3 шт. | |
26
- 10.09.2012 - 11:40
|
(25) а так SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY IDDOC WITH ROLLUP | |
27
- 10.09.2012 - 11:44
| а если к 23 подставить роллап, то кирдык? | |
28
- 10.09.2012 - 11:47
|
OFF Сижу и думаю - зачем люди пишут документацию к программным продуктам? Ну это я так. Не мешаюсь больше, беседуйте :) | |
29
- 10.09.2012 - 11:49
|
26-Удар копытом > не понимает драйвер vfpodbc.dll таких слов как WITH ROLLUP говорит State 42000, native 219, message [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword | |
30
- 10.09.2012 - 11:53
| 28-Sadovnikov > Ниче ниче. Я за любую движуху, если туплю, то критикуйте без стеснения. Кстати на документацию бы если можно ссылку, главное чтобы там было про мои любимые ИТОГИ | |
31
- 10.09.2012 - 11:53
|
Ладно, бабушку помучали неплохо:) Придется таки читать документацию:)) Или сходи на sql.ru, там должны были остаться живые фокспрошники:) | |
32
- 10.09.2012 - 11:59
| Есть еще вариант сделать два запроса, один с группами, другой без, и UNION ALL с ORDER BY но это не комильфо, ибо группировки изначально не известны, хотя... | |
33
- 10.09.2012 - 12:02
| Запросы с ROLLUP не пробовал, но GROUP BY должно быть обязательно по всем полям выборки, неохваченным агрегатными функциями типа SUM, MAX и тд. В ДБФ версии можно тупо группировать по номерам полей: GROUO BY 1,2// Не очень эстетично, но работает | |
34
- 10.09.2012 - 12:16
| 33-USSR >Це группировки, а мне треба итоги | |
| Интернет-форум Краснодарского края и Краснодара |