带有子查询的SQL Pivot
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有子查询的SQL Pivot相关的知识,希望对你有一定的参考价值。
我有一张看起来像这样的桌子
value | effective_date
----------------------
'A' | '2000-10-31'
'A' | '2000-11-30'
'B' | '2000-10-31'
'B' | '2000-11-30'
'C' | '2001-10-31'
'C' | '2001-12-31'
如何旋转effective_date
列以显示每个日期是否存在值?
输出:
value | 2000-10-31 | 2000-11-30 | 2001-10-31 | 2001-12-31
'A' | 1 | 1 | 0 | 0
'B' | 1 | 1 | 0 | 0
'C' | 0 | 0 | 1 | 1
我选择第一个表
SELECT DISTINCT value, effective_date
FROM table
WHERE condition
和effective_date
列
SELECT DISTINCT effective_date
FROM table
ORDER BY effective_date
答案
CREATE TABLE #Test ([value] char(1), effective_date date)
INSERT INTO #Test ([value], effective_date) VALUES
('A', '2000-10-31'),
('A', '2000-11-30'),
('B', '2000-10-31'),
('B', '2000-11-30'),
('C', '2001-10-31'),
('C', '2001-12-31')
SELECT *
FROM
(
SELECT [value] AS 'Display', [value], effective_date FROM #Test
) AS SRC
PIVOT
(
COUNT([value])
FOR effective_date
IN ([2000-10-31], [2000-11-30], [2001-10-31], [2001-12-31])
) AS PVT
DROP TABLE #Test
以上是关于带有子查询的SQL Pivot的主要内容,如果未能解决你的问题,请参考以下文章