得到一个没有周末和节假日的 table。 MYSQL
get a table without weekend and holidays. MYSQL
我已经写了两个table了。第一个是 time_dimension 年份的所有日期,第二个 tbl_holidays 是今年的 public 假期。但是,我想得到没有周末和假期的一天。我写的查询是这样的;
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM time_dimension ti
LEFT JOIN tbl_holidays tb on ti.db_date=tb.startdate
where day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday');
谁能帮我去掉这个查询中的假期 table?
更新答案:
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM DeJuMa.time_dimension ti
LEFT JOIN tbl_holidays tb on ti.db_date=tb.startdate
where day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday')
AND ti.db_date NOT IN (select startdate from tbl_holidays tb );
您可以使用NOT EXISTS
排除节假日:
SELECT *
FROM time_dimension ti
WHERE
NOT EXISTS(SELECT 1 FROM tbl_holidays WHERE startdate = ti.db_date)
AND day_name IN ('Monday','Tuesday','Wednesday','Thursday','Friday');
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM time_dimension ti WHERE day_name NOT IN ('Saturday','Sunday')
AND ti.db_date NOT IN (SELECT startdate FROM tbl_holidays);
我已经写了两个table了。第一个是 time_dimension 年份的所有日期,第二个 tbl_holidays 是今年的 public 假期。但是,我想得到没有周末和假期的一天。我写的查询是这样的;
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM time_dimension ti
LEFT JOIN tbl_holidays tb on ti.db_date=tb.startdate
where day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday');
谁能帮我去掉这个查询中的假期 table?
更新答案:
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM DeJuMa.time_dimension ti
LEFT JOIN tbl_holidays tb on ti.db_date=tb.startdate
where day_name in ('Monday','Tuesday','Wednesday','Thursday','Friday')
AND ti.db_date NOT IN (select startdate from tbl_holidays tb );
您可以使用NOT EXISTS
排除节假日:
SELECT *
FROM time_dimension ti
WHERE
NOT EXISTS(SELECT 1 FROM tbl_holidays WHERE startdate = ti.db_date)
AND day_name IN ('Monday','Tuesday','Wednesday','Thursday','Friday');
SELECT ti.id, ti.db_date, ti.year, ti.month, ti.day, ti.quarter, ti.week, ti.day_name, ti.month_name
FROM time_dimension ti WHERE day_name NOT IN ('Saturday','Sunday')
AND ti.db_date NOT IN (SELECT startdate FROM tbl_holidays);