请问想实现这样的效果怎么写呢?
表GOODS
GoodsID TypeID SizeID BarcodeID
------------------------------------
000001 AA size01 11111111
000001 AA size02 22222222
000001 AA size03 33333333
000001 BB size01 44444444
000001 CC size03 55555555
000002 DD size02 66666666
000002 AA size04 77777777
例如当插入记录如上时,在表Barcodes 也插入记录如:
GoodsID TypeID Size01 Size02 Size03 Size04.......Size12
---------------------------------------------------------------------
000001 AA 11111111 22222222 33333333 null null
000001 BB 44444444 null null null null
000001 CC null null 55555555 null null
000002 DD null 66666666 NULL null null
000002 AA null null NULL 77777777 null
请问怎么办啊?
问题点数:100、回复次数:5Top
1 楼lsqkeke(可可)回复于 2006-03-01 09:48:23 得分 0
表Barcodes 最后个字段就到Size12 就完了吗? 没有Size13 了吧Top
2 楼lsqkeke(可可)回复于 2006-03-01 09:58:26 得分 0
insert Barcodes
select GoodsID,
TypeID,
col1=(case when exists(select 1 from Goods where GoodsID=A.GoodsID AND TypeID=A.TypeID AND SizeID='size01') then
(select BarcodeID from Goods where GoodsID=A.GoodsID AND TypeID=A.TypeID AND SizeID='size01') else null end ),
col2=(case when exists(select 1 from Goods where GoodsID=A.GoodsID AND TypeID=A.TypeID AND SizeID='size02') then
(select BarcodeID from Goods where GoodsID=A.GoodsID AND TypeID=A.TypeID AND SizeID='size02') else null end )
col3=..... --与上面相同
col4=.......
from Goods
group by GoodsID, TypeIDTop
3 楼kenways(kenways)回复于 2006-03-01 10:33:52 得分 0
谢谢,其实是16个SIZE,Size16
不能用循环语句吗?不过一个个复制也可以Top
4 楼geniusli(纠级天使)回复于 2006-03-01 13:49:50 得分 0
这是一个可以用触发器解决的问题。为GOODS加一个insert触发器就OK了。Top
5 楼geniusli(纠级天使)回复于 2006-03-01 13:50:30 得分 0
但我没写出来触发器。呵呵呵,不好意思。
谁能写出来呀,让偶也看看Top




