CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请问想实现这样的效果怎么写呢?

楼主kenways(kenways)2006-03-01 09:45:03 在 MS-SQL Server / 基础类 提问

表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

相关问题

  • help !! 实现这个效果代码该怎么写 在线等
  • 怎么实现这个效果?
  • 图标阴影效果怎么实现?
  • ◎◎◎◎◎◎实现这个效果怎么做?◎◎◎◎◎◎
  • 需要这种效果....怎么实现????????????
  • 这种效果怎么实现?
  • 这个CSS效果怎么实现……
  • 这个效果怎么实现?
  • 请问这个效果怎么实现?
  • 请问这种效果怎么实现?

关键词

  • null
  • goodsid
  • typeid
  • sizeid
  • barcodeid
  • 触发器
  • aa
  • size
  • col
  • fromgoods where

得分解答快速导航

  • 帖主:kenways

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo