Sql 1列中的2个值显示在2个单独的列标题下
我们在Sql 1列中的2个值显示在2个单独的列标题下,sql,Sql,我们在subs\u box\u service\u num列中有值599和616 在我们的选择中,我们有 subs_box_service_num AS D_FCS subs_box_service_num AS D_PZR 查询正在生成两个具有这些不同标题的列-很好 我们如何获得显示在特定列下的值599和616 我们希望在D_FCS下显示值599 我们希望在D_PZR下显示值616 这是一个数据透视查询的示例。您不指定查询的其余部分返回的内容。让我假设它返回两行,其中包含这些值,还有一列澄
subs\u box\u service\u num
列中有值599
和616
在我们的选择中,我们有
subs_box_service_num AS D_FCS
subs_box_service_num AS D_PZR
查询正在生成两个具有这些不同标题的列-很好
我们如何获得显示在特定列下的值599和616
- 我们希望在D_FCS下显示值599
- 我们希望在D_PZR下显示值616
这是一个数据透视查询的示例。您不指定查询的其余部分返回的内容。让我假设它返回两行,其中包含这些值,还有一列澄清了类型。问题是:
select max(case when thetype = 'FCS' then subs_box_service_num end) as D_FCS,
max(case when thetype = 'PZR' then subs_box_service_num end) as D_PZR
当然,您案例中的具体细节取决于查询还做了什么以及您使用的数据库。然而,这种使用条件聚合的方法应该是可行的
编辑:
您的查询是:
Select Distinct system_code, subs_acct_num, subs_box_service_num AS D_FCS,
subs_box_service_num AS D_PZR
From ABC_reporting.dbo.subscriber_boxes_addr_serv
Where subs_box_service_num IN('599','616')
你似乎想要的是:
Select system_code, subs_acct_num,
max(case when subs_box_service_num = 599 then subs_box_service_num end) AS D_FCS,
max(case when subs_box_service_num = 616 then subs_box_service_num end) AS D_PZR
From ABC_reporting.dbo.subscriber_boxes_addr_serv
Where subs_box_service_num IN('599','616')
Group by system_code subs_acct_num;
这似乎是一个奇怪的问题。通常,您需要与每种类型关联的一些值。您使用的是什么数据库系统?数据是否以任何特定方式相关?预期的输入和期望的输出是什么?这是我们迄今为止从ABC_reporting.dbo中选择的不同系统代码、subs_acct_num、subs_box_service_num作为D_FCS、subs_box_service_num作为D_PZR。subscriber_box_addr_serv其中subs_box_service_num在('599','616')非常感谢!这似乎已经做到了,我仍然有一些调整要做,但这让我克服了这个颠簸!