0
我这里有这个SQL代码..SQL使用日期在where子句
SELECT cl.clientid,
cl.clientname,
cl.billingdate,
cp.startdate,
cp.expiration,
(SELECT COUNT(*)
FROM invoice
HERE client = cl.clientid) AS invoicecount
FROM client cl
INNER JOIN clientplan cp ON cp.client = cl.clientid
WHERE cl.isbilled = 1 AND expiration is NULL AND expiration > '2012-06-22'
我的问题是,一个客户端可以有3个客户端计划,他们要么有到期日或到期为NULL。我正在尝试获取未过期的行或为NULL的行。
我在做什么错?
如果日期为NULL,则永远不会有值。[编辑]所以它将会是EXPIRATION IS NULL或(EXPIRATION IS NOT NULL AND EXPIRATION> '22 -JUN-2012')[/编辑] – PaddyC
感谢帕迪C,它的工作! – user979331
AND'并不意味着'这些记录和那些记录'它意味着'这是真的,这是真的'。在你的情况下,你*不能*有'expiration IS NULL' ***和***'expiration>'2012-06-22''同时成立。你的意思是'cl.isbilled = 1 AND(expiration为NULL或expiration>'2012-06-22')' – MatBailie