我有一个网格视图,它有一个类型和两个列,它们绑定到type1
和type2
。
然后我添加了一个脸颊盒。
我想绑定数据,但我的查询数据是重复的。
这是我的查询
SELECT DISTINCT
userId,
MAX(CASE WHEN ApproverTypeID = 1 THEN ApproverTypeID END) AS Type1,
MAX(CASE WHEN ApproverTypeID = 2 THEN ApproverTypeID END) AS Type2
FROM
table1
GROUP BY
ApproverTypeID, userId
我原来的表看起来像这样..
Name Type
---------
Name1 1
Name2 1
Name1 0
但我希望得到像这样的输出......
Name Type1 Type2
----------------
Name1 1 0
Name2 1 null
我该怎么做?
答案 0 :(得分:1)
因为您没有提到您正在使用的数据库服务器,所以下面的查询几乎适用于所有RDBMS(但不是全部)
SELECT Name,
MAX(CASE WHEN Type = 1 THEN Type END) Type1,
MAX(CASE WHEN Type = 2 THEN Type END) Type2
FROM tableName
GROUP By Name
答案 1 :(得分:0)
您只需删除GROUP BY子句的ApproverTypeID,因为在MAX()函数中使用ApproverTypeID。之后,您还可以删除过多的DISTINCT子句。你会收到你想要的东西
SELECT userId,
MAX(CASE WHEN ApproverTypeID = 1 THEN ApproverTypeID END) AS Type1,
MAX(CASE WHEN ApproverTypeID = 2 THEN ApproverTypeID END) AS Type2
FROM table1
GROUP BY userId