按两列顺序显示记录

时间:2015-02-03 18:19:25

标签: sql sql-server

我再次遇到问题。

所以我有一张桌子,看起来像这样: 第一个例子:

InstitutionalReportRecordsID            |StringValue    |StringEntryNumber  |Description    |DeleteBit
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    01/14/2015          0                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    12/10/2014          0                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                1                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                1                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                2                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                2                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                3                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                3                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                4                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    NULL                4                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    3A15                5                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    2B15                5                 ThisYearTermB   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    3A15                5                 ThisYearTermA   0
A1E16CCA-1120-43A8-B562-3AE0794CFEE5    2B15                5                 ThisYearTermB   0

此表根据Description和String Entry number存储数据。它们充当X和Y坐标,用于显示StringValue列。

当完成所有操作后,输出应如下所示:

第二个例子:

Descrip         ReportDate  DataColumnOne   DataColumnTwo   DataColumnThree Counts  Comment
ThisYearTermA   11/12/2014  NULL             NULL           NULL            NULL    2A15
ThisYearTermB   12/10/2014  NULL             NULL           NULL            NULL    2B15

以下是发生的事情。我正在接受报告,我必须把它推到一个与上面第一个代码示例相对应的表中。然后,我需要创建一个工作来自动向我们的商业智能人员发送一个与第二个示例匹配的SQL Blob,以便她可以将其放入Excel,并通过电子邮件发送给公司。

我有点把一个方形的钉子推到一个圆形的座位上。如果我能够为此创建一组新表,那么一切都会变得更加容易,更不用说它会更好地与我们当前存储和维护的东西相对应。可悲的是,我被告知没有。

到目前为止,在我的操作中,我无法编写一个select语句来使输出与第二个示例相匹配。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这样的东西?评论字段确实没有意义,因为这些值与表格不匹配,但可能是值的最大值/分钟。

select
  Description,
  max(convert(datetime, case when StringEntryNumber = 0 then StringValue else NULL end, 101)) as ReportDate,
  max(case when StringEntryNumber = 1 then StringValue else NULL) as DataColumnOne,
  max(case when StringEntryNumber = 2 then StringValue else NULL) as DataColumnTwo,
  max(case when StringEntryNumber = 3 then StringValue else NULL) as DataColumnThree,
  max(case when StringEntryNumber = 4 then StringValue else NULL) as Counts,
  max(case when StringEntryNumber = 5 then StringValue else NULL) as Comment
from
  table
group by
  Description