#sql #database #db2
#sql #База данных #db2
Вопрос:
я привязываюсь к сумме количества в SQL, но получаю сообщение об ошибке. Кто-нибудь знает, что я делаю не так? Спасибо! (извините, я не разбираюсь в SQL!) Он работает нормально, пока я не попытаюсь суммировать BXQTOH (добавить сумму и сгруппировать, разбив ее)
SELECT STKMP.AWPART, STKMP.AWDES1, POPTVP.BF5PLT,
POPTVP.BF5VPT, SUM(STKB.BXQTOH)
FROM stkmP INNER JOIN POPTVP ON BF5PT# = AWPART
INNER JOIN STKB ON STKB.BXPLNT = POPTVP.BF5PLT
AND AWPART LIKE 'Z%' AND STKB.BXPART = AWPART GROUP BY BXPLNT
У меня есть дополнительные строки, которые мне нужно объединить в одну строку … так что в основном для Z00002
мне нужно, чтобы 0 и 1 qtys суммировались в одну строку.
Спасибо
Комментарии:
1. Вам не хватает a
SELECT
. И вашиGROUP BY
столбцы не соответствуютSELECT
столбцам.2. извините, блок кода случайно перепутался и удалил мой выбор .. исправлено 🙂
3. Я пытаюсь в основном получить кол-во, суммированное по BF5PLT (location), а затем часть (AWPART) 🙂
4. вы не можете выбрать другие столбцы, которых нет в вашем предложении group by, но если вам нужен специальный вывод, возможно, некоторые данные и желаемый результат помогут нам помочь вам 🙂
Ответ №1:
SELECT STKMP.AWPART, STKMP.AWDES1, POPTVP.BF5PLT,
POPTVP.BF5VPT, sum(CAST(STKB.BXQTOH AS BIGINT))
FROM stkmP INNER JOIN POPTVP ON BF5PT# = AWPART
INNER JOIN STKB ON STKB.BXPLNT = POPTVP.BF5PLT
AND AWPART LIKE 'Z%' AND STKB.BXPART = AWPART GROUP BY BXPLNT
Комментарии:
1. > ВЫБЕРИТЕ STKMP. AWPART, STKMP. AWDES1, POPTVP.BF5PLT, POPTVP.BF5VPT, sum(ПРИВЕДЕНИЕ (STKB.BXQTO КАК BIGINT)) ИЗ stkmP ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ POPTVP НА BF5PT# = AWPART ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ STKB НА STKB.BXPLNT = POPTVP.BF5PLT И AWPART КАК ‘Z%’ И STKB.BXPART = AWPART ГРУППА ПО столбцу BXPLNT AWPARTили выражение в списке ВЫБОРА недопустимо. Выдает эту ошибку AWPART или выражение в списке выбора недопустимо: (