Ежедневный отчет по SQL
У меня есть две таблицы, одна income
который состоит из ID
, income_amount
а также date
другой expenses
который ID
, amount_spent
а также date
,
Я пытаюсь отобразить таблицу с тремя столбцами: дневной итог дохода, дневной итог суммы и дату этого дня. Возможно, что в этот день не будет дохода или суммы, но не обязательно оба.
Я смог отобразить таблицу в Visual C#, собрав их в отдельные таблицы и получив результаты программным путем, но есть ли способ достичь этой таблицы с помощью одного SQL-запроса?
1 ответ
Решение
trunc_to_day
Вот гипотетическая функция, которая усекает дату до ее дня (вы не указали, какую RDMBS вы используете):
select sum(incomes), sun(spent), day from (
(select income_amount incomes, 0 spent, trunc_to_day(datecol) day from income_table)
union all
(select 0 incomes, amount_spent spent, trunc_to_day(datecol) day from spent_table)
) group by day;
Наконец, если вы хотите ограничить несколько дней, используйте where
Заявление об этом.