Выполняю вспомогательный запрос для определения строк, которые я хочу получить исключить. Это те, которые имеют значения NULL в столбце b. Parent Supplier Name
. Это отлично работает, пока я не попытаюсь получить сумму (b. Spend Value in LC
) для остальных.LEFT JOIN и IS NULL работают, но не функция SUM.
SELECT a.`BW Parent Number` , a.`Vendor Name` , b.`Parent Supplier Name` , sum(b.`Spend Value in LC`) as sum
FROM scrubs a
LEFT JOIN (
SELECT `Child Supplier ID` , `Parent Supplier Name` , `Spend Value in LC`
FROM pdwspend
WHERE `BU ID` = 'BU_1'
AND `version` LIKE '%FINAL%'
)b ON a.`BW Parent Number` = b.`Child Supplier ID`
WHERE a.`year` =2014
AND b.`Parent Supplier Name` IS NULL
GROUP BY a.`BW Parent Number`
ORDER BY sum(b.`Spend Value in LC`) DESC
В результате желание имеет такую структуру:
`BW Parent Number` | `Vendor Name` | `Parent Supplier Name` | sum
BW0001 XYC NULL 300,000
.....
.....
Сейчас я получаю это для всех строк, которые не включены в суб-запроса:
`BW Parent Number` | `Vendor Name` | `Parent Supplier Name` | sum
BW0001 XYC NULL NULL
....
....
Спасибо!
Показать некоторые примеры данных. – Laurence
Вы можете попробовать выполнить 'Sum (Coalesce (b. \' Провести значение в LC \ ', 0))' – Siyual