Задать вопрос
@lolrofl01

Как построить такой sql запрос?

Привет!
Есть 2 таблицы: в одной перечислены краски (название краски, ее характеристики), а во второй таблице записывается сколько такой-то краски прибыло, и сколько убыло. То есть, во второй таблице записей об одной и той же краске может быть много. Обе таблицы связаны по айди. Айди краски в первой таблице = айди краски во второй. Стоит задача: сделать выборку так, чтобы взять все краски из первой таблицы, плюс сумму приходов и сумму уходов краски из второй таблицы, и туда же засунуть разницу между этими приходами (пришло - ушло). Я попробовал и написал такой код, но к сожалению, те краски, записей о которых нет во второй таблице - не выбираются. Выводятся лишь те краски, у которых есть хотя бы одна запись во второй таблице. Вот код:
SELECT paints.*,
        SUM(paints_report.income) as income,
        SUM(paints_report.expense) as expense,
        SUM(income - expense) as total
        FROM paints
        LEFT JOIN paints_report
        ON paints.id = paints_report.paint_id
        ORDER BY paints.name ASC


Помогите, пожалуйста, доработать его
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Средний 1 комментарий
Решение пользователя d-stream К ответам на вопрос (2)
@d-stream
Готовые решения - не подаю, но...
Group by по коду краски, суммирование по количествам и никаких звездочек

Дабы избежать варнингов - обернуть значения суммируемого в isnull
Ответ написан
Комментировать