数据操作 - 很难标题

时间:2015-10-29 14:55:16

标签: sql-server

我在SQL Server 2K8R2中有一个表,该表加载了文本文件中的数据,这些文件列出了我们正在打印材料的项目。我在表的顶部有一个视图,对于每个已加载的文件执行一次。我需要找到一个列,回答“这些项目中的哪些已经处理过以及何时处理?”的问题。 (确定这个的查询默认情况下只会回顾x天。)如果它只基于给定行中的数据,这将非常简单,但我需要结果显示所有项目,并且(理想情况下,但不是必需的)只在第3行显示它(没有行号1或2.这是静态数据,不是由SQL动态分配的。)

例如,我在下表中有数据(额外的空间以便于阅读):

item   filename   rownumber    date
A      fileA.txt     3       10/25/2015
B      fileA.txt     4       10/25/2015
C      fileA.txt     5       10/25/2015

D      fileB.txt     3       10/26/2015
A      fileB.txt     4       10/26/2015
C      fileB.txt     5       10/26/2015
E      fileB.txt     6       10/26/2015

理想情况下,当为fileB.txt执行视图时,我希望它显示此内容(仅在第3行):

item   filename   rownumber    date      newcol
D      fileB.txt     3       10/26/2015  A,C processed 10/25/2015
A      fileB.txt     4       10/26/2015
C      fileB.txt     5       10/26/2015
E      fileB.txt     6       10/26/2015

或者,如有必要,将其显示在每一行:

item   filename   rownumber    date      newcol
D      fileB.txt     3       10/26/2015  A,C processed 10/25/2015
A      fileB.txt     4       10/26/2015  A,C processed 10/25/2015
C      fileB.txt     5       10/26/2015  A,C processed 10/25/2015
E      fileB.txt     6       10/26/2015  A,C processed 10/25/2015

请注意,如果在过去的x天内没有处理fileB.txt中的任何项目,则可能列出或不列出任何内容。此外,同一项目可以在一天内处理多次,而不仅仅是如上所述的后续日期。我已经玩了一些使用外连接的子查询,并且考虑了一个函数,但我似乎遇到了每个可能的解决方案。任何帮助表示赞赏!

0 个答案:

没有答案