我有一张表格,每列都有一些图像。在sql server中将多行中的值提取到单行中
Acd_unq_id Emp_unq_id Acd_BImg1 Acd_BImg2 Acd_RImg1 Acd_RImp2 Acd_RImg3 Acd_Active
1 1745 BinaryImg BinaryImg NULL NULL NULL 1
2 1745 NULL NULL BinaryImg NULL NULL 1
3 1745 NULL NULL NULL BinaryImg BinaryImg 1
4 1769 BinaryImg BinaryImg NULL NULL BinaryImg 1
在上面的例子中,我想为每个唯一的Emp ID在单个列中获取数据。因此,根据上面给出的例子,我希望得到的结果是如下 -
Acd_unq_id Emp_unq_id Acd_BImg1 Acd_BImg2 Acd_RImg1 Acd_RImp2 Acd_RImg3 Acd_Active
1 1745 BinaryImg BinaryImg BinaryImg BinaryImg BinaryImg 1
4 1769 BinaryImg BinaryImg NULL NULL BinaryImg 1
我写了一个查询这一点 -
SELECT
(
SELECT TOP 1 ACH_BILL_IMG1 FROM ADVERT_CAMPAIGN_HEADERS INNER JOIN ADVERT_CAMPAIGN_HEADERS
ON ACH_UNQ_ID = ACD_ACH_UNQ_ID WHERE ACD_SOC_UNQ_ID = 1745 AND ACD_IMAGETYPE IN ('H, Q')) as bill_img1
(SELECT TOP 1 ACH_BILL_IMG2 FROM ADVERT_CAMPAIGN_HEADERS INNER JOIN ADVERT_CAMPAIGN_HEADERS
ON ACH_UNQ_ID = ACD_ACH_UNQ_ID WHERE ACD_SOC_UNQ_ID = 1745 AND ACD_IMAGETYPE IN ('H, Q'))
我想要得到的结果,使用子查询和顶部1但在上面的示例查询我写我得到语法错误....
* FROM子句中具有相同的暴露名的对象“ADVERT_CAMPAIGN_HEADERS”和“ADVERT_CAMPAIGN_HEADERS”。使用相关名称来区分它们。*
请帮忙。等待你的答复,专家:)
如果你正在尝试做自连接,你需要的别名参加它的表引用的至少一个。 – 2013-02-16 13:00:17
你好马丁,u能帮助我这个 '选择' 查询.. 选择 (选择顶部1 ach_bill_img1)作为bill_img1, (选择顶部1 ach_bill_img2)作为bill_img2, (选择顶部1 ach_rcpt_img1)作为rcpt_img1 , (选择顶部1 ach_rcpt_img2)作为rcpt_img2, (选择顶部1 ach_rcpt_img3)作为rcpt_img3, 从ADVERT_CAMPAIGN_HEADERS内(选择顶部1 ach_rcpt_img4)作为rcpt_img4 加入ADVERT_CAMPAIGN_DETAILS上ach_unq_id = acd_ach_unq_id 其中acd_soc_unq_id = 1745 这仍然给我多行结果....我想把它做成1单行... – 2013-02-16 13:30:57