表TA 和表TB
TA的字段:ID,物资名称
TB 的字段:TAID,购买单 ……
也就是TA与TB是一对多的关系,现在想从TA关联到TB中,只需要取TB中的一条就够了。如:
TA: id 物资名称 TB: TAID 购买单
1 a 2 0306
2 b 2 0305
3 c 2 0307
…… ……现在我想得到这样的结果:
id 物资名称 购买单
2 b 0306,0305,0307
……这样的结果,SQL语句怎么写写?请大家帮帮忙。
TA的字段:ID,物资名称
TB 的字段:TAID,购买单 ……
也就是TA与TB是一对多的关系,现在想从TA关联到TB中,只需要取TB中的一条就够了。如:
TA: id 物资名称 TB: TAID 购买单
1 a 2 0306
2 b 2 0305
3 c 2 0307
…… ……现在我想得到这样的结果:
id 物资名称 购买单
2 b 0306,0305,0307
……这样的结果,SQL语句怎么写写?请大家帮帮忙。
顺序(1):先利用游标把TB表中相同TAID的购买单连接成一条记录并放入一临时表#TMP
顺序(2):利用TA INNER JOIN #TMP
我觉得还是写一个存储过程吧,要么就用程序实现。
select id,物资名称,购买单 from tb join ta on tb.id=ta.id
2 b 0306,0305,0307
select TB.TAID , 购买单=TB.购买单+','+TB.购买单 from TB left join TB as TC where TB.TAID<>TC.TAID
用这样的方法的得到结果放到视图VTA是:
TAID 购买单
2 0306,0305,0307
2 0305,0306,0307
2 0307,0305,0306
……
现在再用TA与临时表关联;
SELECT TA.ID,TA.物资名称 ,VTA.购买单 from TA INNER JOIN VTA
WHERE VTA.TAID=TA.ID
得到的结果是:
id 物资名称 购买单
2 b 0306,0305,0307
2 b 0305,0306,0307
2 b 0307,0305,0306现在只需要其中一条就够了,这下有什么好的处理方法呢?该怎么处理?