1

我有一个网格视图,它有一个类型和两个绑定到 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

我该怎么做?

4

2 回答 2

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
于 2013-02-18T05:43:26.690 回答
0

您只需要删除 GROUP BY 子句的 ApproverTypeID,因为 ApproverTypeID 用于 MAX() 函数。之后,您还可以删除过多的 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
于 2013-02-18T08:27:27.553 回答