比较PL / SQL中的日期(我是初学者,要温柔)

时间:2014-04-17 06:24:46

标签: sql oracle

相对较新的SQL,所以仍然试图了解几个概念。

我有两个表,第一个有一堆VARCHAR属性,还有一个' DAY'日期格式的列,' USAGE',一个数字。

第二个表只有一列,' HOLIDAY_DATE',也是数据类型日期。顾名思义,这是一堆与过去和未来假期相对应的日期。

我试图找到' USAGE'在非假期的日子里,通过比较“日”和“日”。在第一个表格中的日期'在第二。到目前为止,我的选择陈述是:

SELECT DAY, USAGE
FROM FIRST_TABLE, HOLIDAYS
WHERE FIRST_TABLE.DAY, NOT LIKE HOLIDAYS.HOLIDAY_DATE
GROUP BY DAY, USAGE
ORDER BY DAY;

但这似乎仍然会带来所有的日子,包括假期。不太清楚从哪里开始。

2 个答案:

答案 0 :(得分:1)

SELECT DAY, USAGE
FROM FIRST_TABLE
WHERE FIRST_TABLE.DAY NOT in (select HOLIDAY_DATE from HOLIDAYS)
GROUP BY DAY, USAGE
ORDER BY DAY

答案 1 :(得分:1)

可能还有其他方法,但您可以使用subquery概念

SELECT DAY, USAGE
FROM FIRST_TABLE
WHERE DAY NOT IN(Select HOLIDAY_DATE FROM HOLIDAYS)
GROUP BY DAY, USAGE
ORDER BY DAY;

我想在此处添加更多内容,尽管您的查询存在逻辑问题,但也存在Syntaxt错误

WHERE FIRST_TABLE.DAY, NOT LIKE HOLIDAYS.HOLIDAY_DATE
                     ^