SQL - 给定每天有三个条目的表,如何编写每天有一个entrie和三列的新表

时间:2016-04-22 11:34:03

标签: sql sql-server-2012

我有三种算法,每天早上7点运行一次。每种算法都将其结果写入表中。也就是说,每个算法都会写出其Result,结果的Date及其ID条件。因此,每天都会在表格中添加三行,如下所示:

ID    Result    Date
A     35        21/04/2016
B     27        21/04/2016
C     31        21/04/2016

为了增强阅读,我现在想要生成第二个表,其中同一天的条目存储在同一记录中,如下所示:

Date          A     B     C
21/04/2016    35    27    31
你能帮帮忙吗?

(SQL Server 2012)

2 个答案:

答案 0 :(得分:1)

这是一个透视查询。您可以使用明确的 UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; [[self navigationItem] setBackBarButtonItem:newBackButton]; self.navigationController.navigationBar.tintColor = navBarItems; 。我认为条件聚合很容易:

pivot

答案 1 :(得分:1)

以下是PIVOT解决方案完整性解决方案的简单演示。我发现PIVOT解决方案比条件聚合更优雅,但它的代价是适应性较差。

DECLARE @T TABLE (ID CHAR(1), Result INT, Date DATE);
INSERT @T (ID, Result, Date)
VALUES ('A', 35, '2016-04-21'), ('B', 27, '2016-04-21'), ('C', 35, '2016-04-21');

SELECT  pvt.Date, pvt.A, pvt.B, pvt.C
FROM    @T AS T
        PIVOT (MAX(Result) FOR ID IN (A, B, C)) AS pvt;

<强> RESULT

Date        A   B   C
-----------------------
2016-04-21  35  27  35