我正在尝试计算在特定日期没有租借视频的人数,例如25-OCT-13。我有一个 dateout 和 datein 字段,但是对于我的生活,我无法确定要继续采取的步骤,因为我没有可以使用的范围,只有具体的日期。
我想如果我能找出当天有多少项目,那么我就不能查询了,但后来我仍然坚持原来的问题。
检查此问题的最简单方法是什么?
我正在使用SQL开发人员 该表由ItemNo,CardNo,DateOut,DateIn。
组成我在考虑BETWEEN,但AFAIK只适用于范围并且使用相同的日期似乎不起作用。我不太了解日期如何工作TBH。
最终结果理想情况下是在特定日期没有ItemNo的所有唯一CardNo的计数。
答案 0 :(得分:0)
只是在猜测你可能需要什么,当然我并不完全理解你的问题。
select count(distinct people)
from tableName
where '25-OCT-2013' not between DateOut and DateIN
答案 1 :(得分:0)
要查找在特定日期没有借出视频的人数,您需要知道有多少人拥有一张卡,以及有多少人在特定日期有借阅的视频。
您似乎有两张桌子:
所以,持卡人的数量是:
SELECT COUNT(*) FROM CardHolder
2013年10月25日有一件或多件贷款项目的人数为:
SELECT COUNT(DISTINCT CardNo)
FROM LoanItem
WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn
所以,你需要:
SELECT (SELECT COUNT(*) FROM CardHolder) -
(SELECT COUNT(DISTINCT CardNo)
FROM LoanItem
WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn
)
您可能需要提供一个SELECT表 - 这取决于您的DBMS。
SELECT (SELECT COUNT(*) FROM CardHolder) -
(SELECT COUNT(DISTINCT CardNo)
FROM LoanItem
WHERE DATE '2013-10-25' BETWEEN DateOut AND DateIn
)
FROM Dual;
或任何其他1行表。