这些是我的要求:
我正在使用 MS SQL Server,我能够使用下面的代码编写第一个要求的查询,但我无法获得第二个要求。
我尝试使用 LEFT OUTER JOIN 加入所有可能的日期值,但它为每个 HHMemID 返回重复日期,这不是我正在寻找的结果。
SELECT
h.HHID,
h.HHMemID,
s.StationID,
h.[date],
h.week_number,
h.day_number,
h.[Age Group 1],
h.[Age Group 2],
h.[Age Group 3],
h.[Weight],
COALESCE(t.DurationSec, 0) AS DurationSec
INTO #tmpUsageAllStation60Sec
FROM (
SELECT
DISTINCT bb.HHID,
bb.HHMemID,
bb.[date],
bb.week_number,
bb.day_number,
bb.[Age Group 1],
bb.[Age Group 2],
bb.[Age Group 3],
bb.[Weight]
FROM #tmpUsage60Sec bb
) h
CROSS JOIN (
SELECT DISTINCT StationID
FROM #tmpUsage60Sec
) s
LEFT JOIN #tmpUsage60Sec t ON h.HHMemID = t.HHMemID AND s.StationID = t.StationID AND h.[Date] = t.[Date]
--LEFT OUTER JOIN #tmpUsage60Sec t2 ON t2.[Date] = h.[Date]
ORDER BY h.[Date], h.HHID, h.HHMemID, s.StationID
提前感谢您提供的任何提示或解决方案。
我尝试使用 LEFT OUTER JOIN 来连接所有可能的日期值,但它为每个 HHMemID 返回重复日期,这不是我要查找的结果。我还阅读了有关使用递归 CTE 生成日期列表然后加入它们的内容。不过,我无法将其合并到我现有的查询中。