我有一个数据表和一个日历表。日期表仅包含MonthName和FiscalYearName字段。我的日历表每年都有一天。如何编写JOIN以确保由于无法在约会时加入而导致我没有获得重复数据?现在我只是链接这两个字段,我得到重复的数据。
答案 0 :(得分:1)
你能详细说明确切的问题吗?
如果月份和年份是唯一的字段,为什么您需要加入日历?要摆脱重复,最简单的解决方案可能是使用' DISTINCT'。
SELECT DISTINCT dat.year, dat.month, *
FROM date dat
JOIN calendar cal
ON dat.year = cal.year
AND dat.month = cal.month
编辑; 额外查询只显示MonthNum; 此查询使用公用表表达式,该表达式仅获取不同的月份名称及其编号,然后在此cte上加入日期表。
WITH cteCalendar AS
(
SELECT DISTINCT MonthName, MonthNum FROM calendar
)
SELECT cte.MonthNum, dat.*
FROM date dat
JOIN cteCalendar cte
AS dat.MonthName = cte.MonthName