请教大家:这样的SQL怎样写?(100分)

  • 主题发起人 主题发起人 jsdj007
  • 开始时间 开始时间
J

jsdj007

Unregistered / Unconfirmed
GUEST, unregistred user!
表如下:<br>单位 专业 <br>机械厂 钳工 <br>机械厂 磨工 <br>机械厂 装配工 <br>面粉厂 装卸工 <br>面粉厂 电工 <br><br><br>要求生成: <br>单位 &nbsp; &nbsp; 专业<br>机械厂 &nbsp;钳工磨工装配工 <br>面粉厂 &nbsp;装卸工电工 <br><br>上述用SQL语句该怎样写?
 
sql不会写,<br>不过最好不要什么都依靠sql,这个自己写个程序循环对比一下不就都出来了?<br>当然,如果数据量非常大,就另当别论了.
 
SQL语句应该怎么写?恳请赐教
 
用存储过程写吧,存贮过程就是一组sql语句
 
请教,这个存储过程该怎样写?
 
你要给我500分,我就给你
 
不好意思,没看清楚<br><br>我以为是交叉表哩
 
用游标<br>设原表为Table1, 新建一张表,结构可以和原来的一样,假定为TableNew<br><br>create procedure pr_Proc1<br>AS<br><br>declare @单位 varchar(20), @专业 varchar(20), @全部专业 varchar(1000), @old单位 varchar(20)<br>set @old单位=''<br>set @全部专业=''<br>truncate table TableNew --先清空新建的那张表<br>declare cur cursor for select 单位, 专业 from Table1 order by 单位<br>open cur<br>fetch next from cur into @单位, @专业<br>while @@fetch_status=0<br>begin<br>&nbsp; if @单位&lt;&gt;@old单位<br>&nbsp; begin<br>&nbsp; &nbsp; insert into TableNew values (@old单位, @全部专业)<br>&nbsp; &nbsp; set @old单位=@单位<br>&nbsp; &nbsp; set @全部专业=''<br>&nbsp; end<br>&nbsp; else<br>&nbsp; &nbsp; set @全部专业=@全部专业+@专业<br><br>&nbsp; fetch next from cur into @单位, @专业<br>end<br>insert into TableNew values (@单位, @全部专业)<br>close cur<br>deallocate cur<br><br>select * from TableNew<br>GO<br><br>大致意思就是这样。你自己适当改改
 
SELECT 单位,GROUP_CONCAT(专业) WHERE 表名<br><br>在mysql下面测试通过<br>地区 &nbsp; &nbsp; &nbsp; 编号<br>0571 &nbsp; &nbsp; &nbsp; 106,8241,8293,9624,9625,9626,9627,9673,9689,9690,9691,9712,9713,9769
 
后退
顶部