@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
@d-stream
Готовые решения - не подаю, но...
Group by по коду краски, суммирование по количествам и никаких звездочек

Дабы избежать варнингов - обернуть значения суммируемого в isnull
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Веб-разработка
Учим yii: https://youtu.be/-WRMlGHLgRg
https://academy.vertabelo.com/blog/introduction-us...
Я так понимаю Вы пропустили группировку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы