求一sql語句(50分)

  • 主题发起人 主题发起人 yunxi126
  • 开始时间 开始时间
Y

yunxi126

Unregistered / Unconfirmed
GUEST, unregistred user!
null cb null
null Bd null
-----上面应收有两条,下面应付三条------
cd null de
Ab null fg
ef null cg
--------合起来后变成三条该业务的应收应付明细--
cd cb de
Ab Bd fg
ef null cg
 
怎么对应~~
没关联字段吗?
 
是啊,你這怎麼關聯啊,沒有任務關系,如何實現?
如果你沒有任何關聯的話,你兩個表都搞個序號吧,序號想同的,查詢出來,放一起
 
表达不清
 
搞个iD关联。
 
兄台,请给出一个明确的对映关系来嘛。大家实在看不出它们之间的对映关系。无法帮你写SQL语句。
 
估计你是想列变行
提供参考
--表T的数据如下

PLID Qty
A 100
B 150
A 110
C 200
B 130
C 140

--得到下列结果
A B C
210 280 340

要求用存储过程实现, 代码简单, 效率要高

CREATE TABLE T
(PLID VARCHAR(2), Qty INT)

INSERT INTO T
SELECT 'A', 100
UNION ALL SELECT 'B', 150
UNION ALL SELECT 'A', 110
UNION ALL SELECT 'C', 200
UNION ALL SELECT 'B', 130
UNION ALL SELECT 'C', 140

select * from T

DECLARE @SQL VARCHAR(8000)
SET @SQL=''
SELECT @SQL=@SQL + 'SUM(CASE WHEN PLID=''' + PLID + ''' THEN Qty ELSE 0 END) ' + PLID + ','
FROM T
GROUP BY PLID
SET @SQL='SELECT ' + LEFT(@SQL, LEN(@SQL)-1) + ' FROM T'
EXEC(@SQL)

PLID Qty
---- -----------
A 100
B 150
A 110
C 200
B 130
C 140

(6 行受影响)

A B C
----------- ----------- -----------
210 280 340

(1 行受影响)
 
解決了. 謝了各位
 
接受答案了.
 
后退
顶部