查询以获取SQL Server 2008中的表的转置

时间:2012-06-21 11:29:07

标签: database sql-server-2008

我知道我没有正确地提出问题,所以会在这里详细解释。

我的表TrnOutlet具有以下结构

                Retailer    Flag    Date
            ------------------------------------------------------------
                26901032    3     2012-05-05 00:00:00
                26901032    1     2012-04-28 00:00:00
                26901032    2     2012-04-21 00:00:00
                26901032    3     2012-04-20 00:00:00
                26901033    1     2012-04-28 00:00:00
                26901033    3     2012-04-28 00:00:00
                26901033    1     2012-04-21 00:00:00
                26901033    1     2012-04-20 00:00:00

我希望输出

        RetailerId  Flag Date flag date flag date....
        ------------------------------------------------------------

        RetailerID1 flag1 Date1 flag2 Date2 ...... flagn Daten
        RetailerID2 flag1 Date1 flag2 Date2 ...... flagn Daten
        .
        .
        .
        RetailerIDn flag1 Date1 flag2 Date2 ...... flagn Daten

输出

        RetailerId  Flag Date      flag date       flag    date      flag   date
     ----------------------------------------------------------------------------------
        26901032     3   2012-05-05 1   2012-04-28  2    2012-04-21   3    2012-04-20 
        26901032     1   2012-04-28 3   2012-04-28  1    2012-04-21   1    2012-04-20 

注意:日期和标记可以重复,就像我们在上面的示例中看到的那样

修改     查询我已使用

select retailerId,BeatId,
    MAX(case when TransactDate <> getDate() then TransactDate else '' end ) as Transactdate,
    MAX(case when CompleteFlag in ('1','2','3') then completeFlag else '' end) as completeFlag
    from TrnOutletHistory
    group by TransactDate,RetailerID,BeatID
    order by retailerID desc

0 个答案:

没有答案