最后两百分,散分过年.
九斤半 2007-01-18 09:43:30 有没有其它好的办法~~~
PS:采用的方法给88分
CREATE TABLE A(ID INT IDENTITY(1,1),ITEM NVARCHAR(20))
INSERT A(ITEM) SELECT 'AB'
INSERT A(ITEM) SELECT 'AB'
INSERT A(ITEM) SELECT 'BC'
INSERT A(ITEM) SELECT 'AB'
SELECT * FROM A
CREATE TABLE B(ITEM NVARCHAR(20),QTY INT)
INSERT B SELECT 'AB',190
INSERT B SELECT 'BC',100
SELECT * FROM B
-- 我要得到
-- 同ITEM的只需ID最小的那条记录对应出B表的QTY
-- 如结果中:ITEM=AB的,ID=1的QTY_2=190,ID=2和ID=4的QTY_2=0
SELECT
I.*,
B.QTY,
CASE WHEN NOT EXISTS(SELECT 1 FROM A WHERE ITEM=I.ITEM AND ID<I.ID) THEN B.QTY ELSE 0 END AS QTY_2
FROM A I LEFT JOIN B ON I.ITEM=B.ITEM
DROP TABLE A,B