пример моей базы данных Progress, opdetail таблицыSQL Sum не возвращает правильные данные
invoice invline article size qty ---------------------------------------- 905155 1 Shoe 10 5 905155 2 Slipper 3 2 905155 2 Slipper 4 6 905155 2 Slipper 5 1 905156 1 Boot 10 1 905156 1 Boot 11 1 905157 1 Slipper 5 4 905157 2 Shoe 8 6
простого SQL оператор выбора, запустите из OpenEdge редактор возвращается только то, что мне нужно, список счетов-фактур с их общим количество: -
SELECT invoice, sum(qty) FROM opdetail GROUP BY qty ORDER BY invoice ASC
905155 14 905156 2 905157 10
ОДНАКО: - При запуске из страницы ASP с помощью DSN я должен перечислить оба поля в GROUP BY в противном случае прогресс возвращает GROUP BY ошибка
SELECT invoice, sum(qty) FROM opdetail GROUP BY qty, invoice ORDER BY invoice ASC
905155 5 905155 9 905156 2 905157 4 905157 6
Его не суммируя QTY, и, кажется, принимая во внимание номер строки, даже если номер строки не играет никакой роли в моем заявлении SQL. Может ли кто-нибудь пролить свет на это или как я могу сделать сумму общего количества с учетом номера строки? Благодаря!
Вы можете уточнить, почему вы должны перечислить оба поля в 'group by'? Вы уверены, что Postgres жалуется на это? – Andomar
Да, прогресс хотел, чтобы все выбранные поля перечислялись в GROUP BY, но, похоже, это не означает суммированные поля, поэтому теперь он работает. Спасибо за вашу помощь! –