我是新手,各位大虾帮忙(100分)

  • 主题发起人 主题发起人 wisdomphg
  • 开始时间 开始时间
W

wisdomphg

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个表1<br>编号 工序 数量 日期<br>ds1080 钻孔 555 2005-1-1<br>ds1080 生产 816 2005-1-1<br>ds1080 目视 223 2005-1-1<br>ds222 生产 25 2005-1-2<br>ds222 钻孔 66 2005-1-2<br>我怎么才能得到表2<br>编号 钻孔 生产 目视 日期<br>ds1080 555 816 223 2005-1-1<br>ds222 66 25 0 2005-1-2
 
用SQL语句可以实现表1和表2以及多表的访问。
 
建议,sql语句创建一个临时表。
 
表DEP <br>GONGX_NO(工序编号) DEP_NAME(工序名称)<br>1 钻孔<br>2 镀铜<br>3 曝光<br>表EMP <br>DINGD_NO(订单编号) EMP_QTY(订单数量) EMP_DATE(下单日期)<br>ds1080 1110000 2005-1-1<br>ds222 200000 2005-2-2<br>ds1080 13000 2005-1-2<br>表EHW <br>DINGD_NO(订单编号) GONGX_NO(工序编号) EHW_QTY(生产数量) EHW_DATE(生产日期)<br>ds1080 1 555 2005-1-1<br>ds1080 2 816 2005-1-1<br>ds1080 3 223 2005-2-2<br>ds222 1 25 2005-1-2<br>ds222 3 66 2005-1-2<br>得到以下表<br>DINGD_NO(订单编号) 钻孔 镀铜 曝光 EHW_DATE生产日期<br>ds1080 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;555 &nbsp; &nbsp; &nbsp; 816 &nbsp; &nbsp; &nbsp; &nbsp; 0 2005-1-1<br>ds222 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 25 &nbsp;0 66 2005-1-2<br>ds1080 &nbsp; &nbsp; &nbsp; &nbsp; 0 0 233 2005-2-2<br>以上给500分
 
create database test<br><br>use test<br>create table help1(<br> [Id] varchar(10) Default '',<br> [WorkFlow] varchar(10) Default '',<br> Quantity &nbsp;numeric(18, 0) Default 0,<br> [Date] datetime Default GetDate() <br>)<br><br>select * from help1<br><br>--insert help1 values('ds1080', '钻孔', '555', '2005-1-1');<br>--insert help1 values('ds1080', '生产', '816', '2005-1-1');<br>--insert help1 values('ds1080', '目视', '223', '2005-1-1');<br>--insert help1 values('ds222', '生产', '25', '2005-1-2');<br>--insert help1 values('ds222', '钻孔', '66', '2005-1-2');<br>select Id '编号', '钻孔'=max(case workFlow when '钻孔' then &nbsp;Quantity end),<br> '生产'=max(case workFlow when '生产' then &nbsp;Quantity end),<br> '目视'=max(case workFlow when '目视' then &nbsp;isnull(Quantity,0) end),<br> [date] '日期'<br>From help1 <br>group by id, date<br><br>自己再调整一下, 如果工序是动态的话, 自己修改一下
 
cking331 <br>工序不只这些<br>还有日期是不固定,一直下来日期都会加入新的
 
后退
顶部