日期:2014-05-18  浏览次数:20459 次

再向大家求一条MS语句

向大家求一条MS语句

A表记录如下

barcode       name
001               可乐
002               花生
003               水果
004               花朵
002               花生

B表记录如下
barcode       ku               num
001               仓库1         10
001               仓库5         50
002               仓库2         20
003               仓库1         30
004               仓库3         40
001               仓库6         5
003               仓库1         3

要的结果如下(说明;A和B表是依barcode字段为关联,一个货品有可能放在多个仓库里,如“001可乐”摆放在多个仓库里,仓库的列出只需在结果中一个字段里显示即可),麻烦大家下

001               可乐       仓库1         10       仓库5         50       仓库6         5
002               花生       仓库2         20
003               水果       仓库1         30       仓库1         3
004               花朵       仓库3         40
002               花生       仓库2         20

------解决方案--------------------
http://community.csdn.net/Expert/topic/5428/5428303.xml?temp=.4644586
我这里类似,你先看看,我再帮你写.
------解决方案--------------------
我还是第一次见到这样的,学习!

顺便帮顶!
------解决方案--------------------
if object_id(N 'a ') <> 0
drop table a

create table a (barcode varchar(10),name varchar(50))
insert into a select '001 ', '可乐 '
union all select '002 ', '花生 '
union all select '003 ', '水果 '
union all select '004 ', '花朵 '
union all select '002 ', '花生 '

if object_id(N 'b ') <> 0
drop table b

create table b(barcode varchar(10),ku varchar(20),num int)
insert into b select '001 ', '仓库1 ',10
union all select '001 ', '仓库5 ',50
union all select '002 ', '仓库2 ',20
union all select '003 ', '仓库1 ',30
union all select '004 ', '仓库3 ',40
union all select '001 ', '仓库6 ',5
union all select '003 ', '仓库1 ',3

if object_id(N 'c ') <> 0
drop table c

select id=identity(int ,1,1) ,a.*,b.ku,b.num
into c from a left join b
on a.barcode=b.barcode

create function ab1
(
@barcode varchar(20),
@name varchar(20))
returns varchar(800)
as
begin
declare @sql varchar(1000)
set @sql= ' '
select @sql=@sq