您要查找的内容通常称为交叉表查询。如果您要问的是如何在给定 静态 列列表的情况下构建交叉表查询,则可以执行以下 *** 作:
Select Title , Min( Case When DatePart(mm, [Date]) = 7 And DatePart(yy, [Date]) = 2010 Then metaData End ) As [Jul-10] , Min( Case When DatePart(mm, [Date]) = 8 And DatePart(yy, [Date]) = 2010 Then metaData End ) As [Aug-10] , Min( Case When DatePart(mm, [Date]) = 9 And DatePart(yy, [Date]) = 2010 Then metaData End ) As [Sep-10]...From TableWhere [Date] Between @StartDate And @EndDateGroup By Title
同样,您可以使用Broken link建议的PIVOT功能。但是,以上解决方案和PIVOT功能都依赖于 静态
列声明。如果您想要的是动态列列表(又称动态交叉表),那么您将超出T-SQL最初设计的范围。某些笨拙的动态SQL是 可能的
,但它既脆弱又麻烦。相反,您应该在中间层组件中构建结果集,或者使用将生成交叉表结果的报告工具。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)