2015-04-16 4 views
0

У меня есть SQL-запрос:реляционная база данных присоединиться только показывает одну строку

SELECT B.branchNumber, B.buildingName, SUM(CASE WHEN PI.offerPrice > 0 THEN PI.offerPrice * PI.quantity ELSE price * PI.quantity END) AS total 
FROM `purchase` 
INNER JOIN `product` on purchase.productCode = product.productCode 
INNER JOIN `branch` B on purchase.branchNumber = B.branchNumber 
INNER JOIN `purchase info` PI on purchase.productCode = PI.productCode AND purchase.purchaseID = PI.purchaseID 

Который возвращается только один total Как INNER JOIN показывает только совпадающие столбцы с total. Когда я удаляю:

SUM(CASE WHEN PI.offerPrice > 0 THEN PI.offerPrice * PI.quantity ELSE price * PI.quantity END) AS total 

Он возвращает несколько строк. Как я могу получить это, чтобы вернуть все строки с помощью total?

+0

Попробуйте использовать LEFT JOIN вместо этого. – Chibuzo

+0

Я пробовал, но не повезло! Я думаю, что мне нужно гнездо – maxisme

ответ

2

Вы, казалось бы, отсутствует пункт "GROUP BY B.BranchNumber, B.BuildingName" в конце вашего заявления

+0

Я только что обнаружил, что так же, как вы ответили спасибо! – maxisme

Смежные вопросы