|
问题:假如有两个表a(aid,bid),b(bid,bname,bprice)
a的字段表示顾客ID和商品ID,一个顾客可以买多种商品
现在a有记录:
1,10
1,11
1,12
2,10
2,13 数据挖掘交友
|
b的字段表示商品ID,商品名称,商品价格
现在b有记录:
10,aaa,1
11,bbb,2
12,ccc,3
13,ddd,4 数据挖掘研究院
|
现在要实现显示顾客买的商品名称和价钱即字段:
但是同一个顾客只保留一个ID,其他为null
应当如何实现?
即将上面的记录实现为以下内容:
1,aaa,1
,bbb,2
,ccc,3
2,aaa,1
,ddd,4 数据挖掘工具
|
以上这个示例如果不用游标有办法实现吗?
具体解决方法如下:
CREATE TABLE #T1(aid int ,bid int)
INSERT INTO #T1
SELECT 1,10 UNION ALL
SELECT 1,11 UNION ALL
SELECT 1,12 UNION ALL
SELECT 2,10 UNION ALL
SELECT 2,13
CREATE TABLE #T2(bid int,bname nvarchar(10),bprice int)
INSERT INTO #T2
SELECT 10,""aaa"",1 UNION ALL
SELECT 11,""bbb"",2 UNION ALL
SELECT 12,""ccc"",3 UNION ALL
SELECT 13,""ddd"",4
SELECT A.aid,B.bname,B.bprice INTO #T3 FROM #T1
AS A LEFT OUTER JOIN #T2 AS B ON A.bid=B.bid
DECLARE @aid int ,@lastaid int
UPDATE #T3 SET @aid=(CASE WHEN ISNULL(@lastaid,"""")
=aid THEN NULL ELSE aid END),aid=@aid,@lastaid=aid
SELECT * FROM #T3
DROP TABLE #T1,#T2,#T3
|
结果如下:
/*
1 aaa 1
NULL bbb 2
NULL ccc 3
2 aaa 1
NULL ddd 4
*/ 数据挖掘实验室
|
(责任编辑:卢兆林)
数据挖掘论坛
数据挖掘交友 Create By Any-Extract(WL-AE) 数据挖掘工具
|