我们在599
列
616
和subs_box_service_num
在Select
我们有
subs_box_service_num AS D_FCS
subs_box_service_num AS D_PZR
查询产生了2个具有这些不同标题的列 - 好
我们如何将值599和616显示在特定列下?
答案 0 :(得分:1)
这是一个透视查询的示例。您没有指定查询的其余部分返回的内容。让我假设它返回两行这些值,还有另一列澄清类型。查询将是:
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;
这似乎是一个奇怪的查询。通常,您需要与每种类型相关联的值。