OrderID GoodsID Num
1 a 1
2 s 3
3 a 3
4 c 2订单合并时 订单里有相同的商品 则数量相加。否则 修改订单的 编号
下:
OrderID GoodsID Num
1 a 4 (都合并为 1 )
1 s 3
1 c 2这样的想法不知道 合适吗?、怎么让相同的商品数量相加啊???
1 a 1
2 s 3
3 a 3
4 c 2订单合并时 订单里有相同的商品 则数量相加。否则 修改订单的 编号
下:
OrderID GoodsID Num
1 a 4 (都合并为 1 )
1 s 3
1 c 2这样的想法不知道 合适吗?、怎么让相同的商品数量相加啊???
id pid
1 1
1 2
1 3
2 1
2 2
3 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A
是否是要这效果?
CREATE TABLE TBTEST(OrderID INT, GoodsID VARCHAR(1), Num INT)
INSERT TBTEST
SELECT 1 , 'a' , 1 UNION ALL
SELECT 2 , 's' , 3 UNION ALL
SELECT 3 , 'a' , 3 UNION ALL
SELECT 4 , 'c' , 2 --DROP TABLE TBTEST--SELECT * FROM TBTESTUPDATE TBTEST SET OrderID=(SELECT MIN(OrderID) FROM TBTEST)SELECT OrderID,GoodsID,SUM(NUM)NUM FROM TBTEST GROUP BY OrderID,GoodsID
OrderID GoodsID NUM
----------- ------- -----------
1 a 4
1 c 2
1 s 3(所影响的行数为 3 行)