有两个表:
表一:
id name b_id1 b_id2 b_id3 b_id4
1 a 10 8 null null
2 b 3 4 8 10
3 c 10 5 4 null
表B
b_id title
3 Value3
4 Value4
5 Value 5
8 Value 8
10 Value
表 A 在 b_id1,b_id2,b_id3,b_id4 上有 FK 到 b_id cloumn 上的表 B,
我们将按 Title 分组并计算它。类似于以下结果:
Title Count
Value3 1
Value4 2
Value5 1
Value8 2
Value10 3
Null 3
完整的工作示例:
DECLARE @Table1 TABLE
(
[id] INT
,[name] VARCHAR(1)
,[b_id1] INT
,[b_id2] INT
,[b_id3] INT
,[b_id4] INT
);
DECLARE @Table2 TABLE
(
[b_id] INT
,[title] VARCHAR(7)
);
INSERT INTO @Table1 ([id], [name], [b_id1], [b_id2], [b_id3], [b_id4])
VALUES (1, 'a', 10, 8, NULL, NULL)
,(2, 'b', 3, 4, 8, 10)
,(3, 'c', 10, 5, 4, NULL);
INSERT INTO @Table2 ([b_id], [title])
VALUES (3, 'Value3')
,(4, 'Value4')
,(5, 'Value 5')
,(8, 'Value 8')
,(10, 'Value');
SELECT T2.[title]
,COUNT(*)
FROM
(
SELECT [b_id1]
FROM @Table1
UNION ALL
SELECT [b_id2]
FROM @Table1
UNION ALL
SELECT [b_id3]
FROM @Table1
UNION ALL
SELECT [b_id4]
FROM @Table1
) DS
LEFT JOIN @Table2 T2
ON DS.[b_id1] = T2.[b_id]
GROUP BY T2.[title];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句