急求SQL

fyming 2019-01-18 10:39:22
CREATE TABLE #(
F1 VARCHAR(10),
F2 VARCHAR(10),
F3 INT)

INSERT INTO #(F1,F2,F3)
SELECT 'A','00',1 UNION ALL
SELECT 'A','01',1 UNION ALL
SELECT 'B','00',2 UNION ALL
SELECT 'C','00',3 UNION ALL
SELECT 'C','01',1

SELECT F1,F2,F3 FROM #
--------------------
DROP TABLE #

得到结果如下


希望得到结果是:


根据F1、F2对数据分组,并且F2分组后必须包括‘00’和‘01’两项,缺项则由0补齐

-------------------------------
SQL如何写?
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-01-18
  • 打赏
  • 举报
回复
CREATE TABLE #(
F1 VARCHAR(10),
F2 VARCHAR(10),
F3 INT)

INSERT INTO #(F1,F2,F3)
SELECT 'A','00',1 UNION ALL
SELECT 'A','01',1 UNION ALL
SELECT 'B','00',2 UNION ALL
SELECT 'C','00',3 UNION ALL
SELECT 'C','01',1

SELECT t.F1,
t.F2,
ISNULL(#.F3, 0) F3
FROM
(
SELECT *
FROM
(SELECT DISTINCT F1 FROM #) t1 ,
(SELECT DISTINCT F2 FROM #) t2
) t
LEFT JOIN #
ON #.F1 = t.F1
AND #.F2 = t.F2
ORDER BY t.F1,t.F2
--------------------
DROP TABLE #


dampce32 2019-01-18
  • 打赏
  • 举报
回复
SELECT a.F1,b.F2,ISNULL(c.F3, 0) F3
FROM(
SELECT DISTINCT F1
FROM lab a) a
LEFT JOIN(
SELECT DISTINCT F2
FROM lab a) b ON 1 = 1
LEFT JOIN lab c ON a.F1 = c.F1 AND b.F2= c.F2

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧