gpt4 book ai didi

sql - SQL Server 2000 中的交叉表查询

转载 作者:行者123 更新时间:2023-12-01 11:07:56 25 4
gpt4 key购买 nike

我希望之前有人尝试过这个,我可以在继续之前得到一些建议。

我希望在 sql-server 2000 中生成类似于交叉表查询的东西。

我有一个类似于下面的表结构:

Item       Item_Parameter      Parameter
id item_id id
desc parameter_id desc
value

我想要做的是通过查询/存储过程将数据展平,以便更轻松地构建报告。

理想的解决方案会产生如下结果:

             Parameter.desc[0]      Parameter.desc[1]      Parameter.desc[3]...
item.id[0] Item_Parameter.value Item_Parameter.value Item_Parameter.value
item.id[1] Item_Parameter.value Item_Parameter.value Item_Parameter.value

最佳答案

如果您确定每个参数项组合最多只有一个值,则可以使用简单的group by:

select  item_id
, max(case when parameter_id = 1 then value) Par1
, max(case when parameter_id = 2 then value) Par2
, max(case when parameter_id = 3 then value) Par3
from item_paramenter
group by
item_id

您可以使用 minavg 代替 max:这无关紧要,因为每个 item_id 的每个参数只有一个值,

如果没有动态SQL,就无法根据参数表中的描述返回列名。

关于sql - SQL Server 2000 中的交叉表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com