将X个行数转换为列数以进行SQL计数
我有一个数据集,每个客户有多个记录。每行有一个型号。我想将集合中的所有型号转换为列,以计算每个客户拥有的型号数量以及总数。我现在可以通过硬编码型号来做到这一点,但我更希望这是一个动态的,随着相机型号的增加或减少而增长。任何帮助或见解都将不胜感激 起始表:将X个行数转换为列数以进行SQL计数,sql,dynamic,transpose,Sql,Dynamic,Transpose,我有一个数据集,每个客户有多个记录。每行有一个型号。我想将集合中的所有型号转换为列,以计算每个客户拥有的型号数量以及总数。我现在可以通过硬编码型号来做到这一点,但我更希望这是一个动态的,随着相机型号的增加或减少而增长。任何帮助或见解都将不胜感激 起始表: Customer # Model# Mac # 123 Cam320 1234bbfgdv 123 Cam320 12567fkrl4 453 Cam110
Customer # Model# Mac #
123 Cam320 1234bbfgdv
123 Cam320 12567fkrl4
453 Cam110 574446nng3
453 Cam880 578455mmh3
453 Cam320 445445rtsy
输出
Customer # Cam110 Cam320 Cam880 Total
123 0 2 0 2
453 1 1 1 3
尽管这可以通过PIVOT函数使用T-SQL完成,但最好将此功能留给报表引擎。SQL Server是为存储数据而构建的,不一定要显示数据,而最终的合计将很难实现动态。该数据集已经非常适合SSRS报告。我建议尝试SSR。但是,如果您决定使用T-SQL,请查看本文 Mike认为,可以使用PIVOT创建动态SQL,以使列数随模型动态增长,但这会改变表的模式,从而导致任何使用它的东西出现下游问题。这对于可视化工具更合适。