27,579
社区成员
发帖
与我相关
我的任务
分享
DECLARE @T1 TABLE (NAME VARCHAR(20), DATE datetime, VALUE VARCHAR(10))
DECLARE @T2 TABLE (date datetime)
INSERT INTO @T1 VALUES('A', '2018-1-1', 'V')
INSERT INTO @T1 VALUES('A', '2018-1-2', 'V')
INSERT INTO @T1 VALUES('B', '2018-1-1', 'V')
INSERT INTO @T1 VALUES('C', '2018-1-1', 'V')
INSERT INTO @T2 VALUES('2018-1-1')
INSERT INTO @T2 VALUES('2018-1-2')
INSERT INTO @T2 VALUES('2018-1-3')
SELECT A.NAME,A.date,B.VALUE FROM
(SELECT *
FROM
(SELECT DISTINCT NAME from @T1) AS A
JOIN @T2 B ON 1=1) AS A
LEFT JOIN @T1 B ON A.date=B.date AND A.NAME=B.NAME
with t1(NAME, DATE , VALUE) as
(
select 'A', '2018-1-1', 'V' union all
select 'A', '2018-1-2', 'V' union all
select 'B', '2018-1-1', 'V' union all
select 'C', '2018-1-1', 'V'
)
, t2(date) as
(
select '2018-1-1' union all
select '2018-1-2' union all
select '2018-1-3'
)
select a.NAME, b.VALUE, a.date from
(select distinct t1.NAME, t2.date from t1, t2) a
left join t1 b on a.NAME=b.NAME and a.date=b.DATE