再向大家求一条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=@sql+ ' '+ku + ' '+rtrim(num) from c
where barcode=@barcode and name=@name
return @sql
end
select barcode,name, dbo.ab1(barcode,name) as ku from c
group by barcode,name
drop table a,b,c
drop function ab1
barcode name ku
---------- ------------------- ----------------------------
001 可乐 仓库1 10 仓库5 50 仓库6 5
002 花生 仓库2 20 仓库2 20
003 水果 仓库1 30 仓库1 3
004 花朵 仓库3 40
(所影响的行数为 4 行)
[解决办法]
name ku1 num1 ku2 num2 ku3 num3
---------- ---------- ------------ ---------- ------------ ---------- ------------
可乐 仓库1 10 仓库5 50 仓库6 5
花生 仓库2 20
水果 仓库1 30
花朵 仓库3 40
(4 行受影响)
[解决办法]
dawugui(潇洒老乌龟) 顶 向上看齐