![]() |
ИТОГИ ПО в прямом запросе к DBF Приветствую, Господа! Имеется прямой запрос к ДБФ файлу. Нужно получить что-то типа ИТОГИ ПО в 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-ке. |
Перед FROM запятой естественно нет |
Может, не издеваться над провайдером, а посчитать итоги на клиенте? |
ввобще не понятно, зачем в запросе есть и РегПродажа.SP2224 as Количество, и SUM(РегПродажа.SP2224) as СуммаКоличество, не выкинуть ли РегПродажа.SP2224 as Количество. Зачем оно? |
2-Sadovnikov > Смысл в том, чтобы сделать запрос наподобие запроса в отчете Анализ продаж, а там группировка в запросе. Интересует именно возможность использовать ROLLUP или CUBE, или что-то подобное именно в прямом запросе. Извините за злоупотребление словом Запрос |
4-andertaletz > Так я и спрашиваю - зачем считать это именно в запросе? Почему не на клиенте, при выводе отчета? |
3-Удар копытом > Благодарю за заботу, истину глаголите, но вопрос немного не в этом. Текст запроса - это небольшой кусочек из более крупного запроса. |
5-Sadovnikov >Очень хочется "подсунуть" Анализу продаж свой запрос (не факт, кстати, что получится), и не шибко заморачиваться со стандартным выводом этого отчета в зависимости от группировок и множественных фильтров. (Оговорюсь сразу - база не SQL) |
(6) ну если там есть еще что-то, то может его там быть не должно.Там должны быть только то, что группируется. по крайней мере в т-скл SELECT a, b, c, SUM FROM T GROUP BY ROLLUP (a,b,c); |
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 |
Колонка есть 100%) |
не, в примере SUM это не просто SUM ,а функция типа SELECT a, b, c, SUM(d) |
и понятно, что одно поле должно быть числовым, по которому идет SUM, и хотя бы одно еще группировочное |
и это соответствует тому что ты писал в заголовке, только без |РегПродажа.SP2224 as Количество, |
Интересен факт, что 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 |
а так? SELECT | _IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY ROLLUP(IDDOC) |
К моей печали SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY ROLLUP(IDDOC) Всё та же пижня |
Есть подозрение что в SQL версии это заработает, но вот как заставить файловую версию это скушать? |
SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old Отрабатывает замечательно |
а без роллапа? |GROUP BY IDDOC,SUM(SP2227) |
без суммы тоже |
Можно начать подбирать синтаксис:)) GROUP BY IDDOC WITH ROLLUP |
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 |
(22) не, SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY IDDOC |
21-Удар копытом > Пробовал, получил сей результат Command contains unrecognized phrase/keyword |
23-Удар копытом > Работает, группирует, суммирует. Но получаем только группы, т.е. что-то типа Наименование | Кол-во. ------------------------ Дырка от бублика | 4 шт. А надо Наименование | Кол-во. ------------------------ [b]Дырка от бублика | 4 шт.[/b] Дырка от бублика | 1 шт. Дырка от бублика | 3 шт. |
(25) а так SELECT | IDDOC, | SUM(SP2227) |FROM | _RA2228Old |GROUP BY IDDOC WITH ROLLUP |
а если к 23 подставить роллап, то кирдык? |
OFF Сижу и думаю - зачем люди пишут документацию к программным продуктам? Ну это я так. Не мешаюсь больше, беседуйте :) |
26-Удар копытом > не понимает драйвер vfpodbc.dll таких слов как WITH ROLLUP говорит State 42000, native 219, message [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword |
28-Sadovnikov > Ниче ниче. Я за любую движуху, если туплю, то критикуйте без стеснения. Кстати на документацию бы если можно ссылку, главное чтобы там было про мои любимые ИТОГИ |
Ладно, бабушку помучали неплохо:) Придется таки читать документацию:)) Или сходи на sql.ru, там должны были остаться живые фокспрошники:) |
Есть еще вариант сделать два запроса, один с группами, другой без, и UNION ALL с ORDER BY но это не комильфо, ибо группировки изначально не известны, хотя... |
Запросы с ROLLUP не пробовал, но GROUP BY должно быть обязательно по всем полям выборки, неохваченным агрегатными функциями типа SUM, MAX и тд. В ДБФ версии можно тупо группировать по номерам полей: GROUO BY 1,2// Не очень эстетично, но работает |
33-USSR >Це группировки, а мне треба итоги |
| Текущее время: 12:30. Часовой пояс GMT +3. |