Ежедневный отчет по 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 Заявление об этом.

Другие вопросы по тегам