相对较新的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;
但这似乎仍然会带来所有的日子,包括假期。不太清楚从哪里开始。
答案 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
^