ID DepID Status
------------------
000 54 0
000 12 1
141 14 0
141 56 1
000 12 0
000 89 1
我有上面的表,其中我有depID
。以下是我需要的输出:从sql列检索数据通过将一列分为两个
ID DepOld DepNew
-------------------
000 54 12
141 14 56
000 12 89
状态0表示其旧,1表示新状态。考虑到它在一个表中,我如何获得上述输出?
我不能使用IN
子句。
我尝试以下
SELECT
ID,
Max(CASE
WHEN Status = 0 THEN DepID
END) DepOld,
Max(CASE
WHEN Status = 1 THEN DepID
END) DepNew
FROM
tablename
GROUP BY
ID
但这输出我得到
Id DepOld DepNew
--------------------
000 54 54
000 12 NULL
141 14 14
141 56 Null
如果我通过DEPID = 54那么这个输出是什么,我想
ID DepOld DepNew
000 54 12
全自联接与状态字段的附加条件应该工作。 – Arvo 2014-11-04 13:59:38
有自动加入 – 2014-11-04 13:59:43
检查您的数据。第1,2和5,6行的ID是否应该等于000?与建议的结果相同。 – anonxen 2014-11-04 14:05:30