首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

再向大家求一条MS语句解决方案

2012-03-11 
再向大家求一条MS语句 向大家求一条MS语句A表记录如下barcodename001可乐002花生003水果004花朵002花生B表

再向大家求一条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(潇洒老乌龟) 顶 向上看齐

热点排行