我在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中的任何项目,则可能列出或不列出任何内容。此外,同一项目可以在一天内处理多次,而不仅仅是如上所述的后续日期。我已经玩了一些使用外连接的子查询,并且考虑了一个函数,但我似乎遇到了每个可能的解决方案。任何帮助表示赞赏!