我有下表 RENTAL(book_date, copy_id, member_id, title_id, act_ret_date, exp_ret_date)。其中 book_date 显示预订图书的日期。我需要为一个月中的每一天编写一个查询(所以从 1-30 或从 1-29 或从 1-31 取决于月份)它会显示我预订的书籍数量。
我目前知道如何显示表格中租借的天数

select count(book_date), to_char(book_date,'DD')
from rental
group by to_char(book_date,'DD');

我的问题是:
  • 我如何显示剩余的日子(如果让我们说由于某种原因在我的数据库中我没有在第 20 天或第 19 天或多天租借的书)并将数字 0 放在那里?
  • 我如何仅显示当月的天数(28,29,30,31 所有这 4 种可能取决于月份或年份)...我迷路了。这必须仅使用 SQL 查询而不是 pl/SQL 或其他东西来完成。
  • 最佳答案

    以下查询将为您提供当月的所有天数,在您的情况下,您可以将 SYSDATE 替换为您的日期列并加入此查询以了解给定月份的天数

    SELECT DT
    FROM(
    SELECT TRUNC (last_day(SYSDATE) - ROWNUM) dt
      FROM DUAL CONNECT BY ROWNUM < 32
      )
      where DT >= trunc(sysdate,'mm')
    

    关于一个月中所有天数的 SQL 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26300025/

    10-11 22:20
    查看更多