我明白,提问也是需要讲技巧的,不然大神们都不知道我想表达个什么意思.
本帖最后由 u010009961 于 2013-03-29 00:43:50 编辑 终于完成了我的提问,花了我半个小时,希望不是我一个人遇到这样的问题,那么,让我们开始吧!
A表结构:Number为自增长列
Number,GoodsName,Bopomofo_Ab
1 小米 XM
2 大米 DM
3 小麦 XM
4 大麦 DM
5 高梁 GL
6 土豆 TD
7 玉米 YM
ID,DJBID,GoodsName,SpecType,Provider,remarks,Quantity,UnitPrice
1 1 小米 广东 阿里 良 10000 3.00
2 1 小米 山东 淘宝 优 20000 2.50
3 2 大米 山东 淘宝 良 5000 2.00
4 2 大米 吉林 阿里 良 5000 4.00
5 5 高梁 安徽 易趣 优 10000 2.00
6 4 大麦 四川 当当 差 4000 2.00
7 6 土豆 黑龙江 京东 优 20000 1.00
ID,DJBID,KCID,GoodsName,Provider,SpecType,remarks_kc,Quantity_ck1,UnitPrice,
1 1 2 小米 山东 淘宝 优 1000 2.50
2 5 5 高梁 安徽 易趣 优 1000 2.00
3 1 1 小米 广东 阿里 良 10000 3.00
ID,DJBID,KCID,GoodsName,Provider,SpecType,remarks_kc,Quantity_ck2,UnitPrice,
1 2 3 大米 山东 淘宝 良 900 2.00
2 1 1 小米 广东 阿里 良 1000 3.00
ID,DJBID,KCID,GoodsName,Provider,SpecType,remarks_kc,Quantity_ck3,UnitPrice,
1 6 7 土豆 黑龙江 京东 优 1000 1.00
2 1 2 小米 山东 淘宝 优 1000 2.50
B表.ID,B表.DJBID,B表.GoodsName,B表.SpecType,B表.Provider,B表.remarks,B表.Quantity,B表.UnitPrice,A表.Bopomofo_Ab,C表.quantity_ck1,D表.quantity_ck2,E表.quantity_ck3
1 1 小米 广东 阿里 良 10000 3.00 XM 1000 1000 NULL
2 1 小米 山东 淘宝 优 20000 2.50 XM 1000 NULL 1000
3 2 大米 山东 淘宝 良 5000 2.00 DM NULL 900 NULL
4 2 大米 吉林 阿里 良 5000 4.00 DM NULL NULL NULL
5 5 高梁 安徽 易趣 优 10000 2.00 GL 1000 NULL NULL
6 4 大麦 四川 当当 差 4000 2.00 XM NULL NULL NULL
7 6 土豆 黑龙江 京东 优 20000 1.00 TD NULL NULL 1000
----------------------------
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-03-29 00:49:07
-- Version:
-- Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86)
--Jun 17 2011 00:57:23
--Copyright (c) Microsoft Corporation
--Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[A]
if object_id('[A]') is not null drop table [A]
go
create table [A]([Number] int,[GoodsName] varchar(4),[Bopomofo_Ab] varchar(2))
insert [A]
select 1,'小米','XM' union all
select 2,'大米','DM' union all
select 3,'小麦','XM' union all
select 4,'大麦','DM' union all
select 5,'高梁','GL' union all
select 6,'土豆','TD' union all
select 7,'玉米','YM'
if object_id('[B]') is not null drop table [B]
go
create table [B]([ID] int,[DJBID] int,[GoodsName] varchar(4),[SpecType] varchar(6),[Provider] varchar(4),[remarks] varchar(2),[Quantity] int,[UnitPrice] numeric(3,2))
insert [B]
select 1,1,'小米','广东','阿里','良',10000,3.00 union all
select 2,1,'小米','山东','淘宝','优',20000,2.50 union all
select 3,2,'大米','山东','淘宝','良',5000,2.00 union all
select 4,2,'大米','吉林','阿里','良',5000,4.00 union all
select 5,5,'高梁','安徽','易趣','优',10000,2.00 union all
select 6,4,'大麦','四川','当当','差',4000,2.00 union all
select 7,6,'土豆','黑龙江','京东','优',20000,1.00
if object_id('[C]') is not null drop table [C]
go
create table [C]([ID] int,[DJBID] int,[KCID] int,[GoodsName] varchar(4),[Provider] varchar(4),[SpecType] varchar(4),[remarks_kc] varchar(2),[Quantity_ck1] int,[UnitPrice] numeric(3,2))
insert [C]
select 1,1,2,'小米','山东','淘宝','优',1000,2.50 union all
select 2,5,5,'高梁','安徽','易趣','优',1000,2.00 union all
select 3,1,1,'小米','广东','阿里','良',10000,3.00
if object_id('[D]') is not null drop table [D]
go
create table [D]([ID] int,[DJBID] int,[KCID] int,[GoodsName] varchar(4),[Provider] varchar(4),[SpecType] varchar(4),[remarks_kc] varchar(2),[Quantity_ck2] int,[UnitPrice] numeric(3,2))
insert [D]
select 1,2,3,'大米','山东','淘宝','良',900,2.00 union all
select 2,1,1,'小米','广东','阿里','良',1000,3.00
if object_id('[E]') is not null drop table [E]
go
create table [E]([ID] int,[DJBID] int,[KCID] int,[GoodsName] varchar(4),[Provider] varchar(6),[SpecType] varchar(4),[remarks_kc] varchar(2),[Quantity_ck3] int,[UnitPrice] numeric(3,2))
insert [E]
select 1,6,7,'土豆','黑龙江','京东','优',1000,1.00 union all
select 2,1,2,'小米','山东','淘宝','优',1000,2.50
--------------开始查询--------------------------
SELECT b.*,a.Bopomofo_Ab,c.quantity_ck1,d.quantity_ck2,e.quantity_ck3
FROM B left JOIN A ON a.number= b.DJBID
LEFT JOIN C ON b.ID=c.KCID AND a.number= c.DJBID
LEFT JOIN D ON b.ID=D.KCID AND a.number= D.DJBID
LEFT JOIN E ON b.ID=E.KCID AND a.number= E.DJBID
----------------结果----------------------------
/*
ID DJBID GoodsName SpecType Provider remarks Quantity UnitPrice Bopomofo_Ab quantity_ck1 quantity_ck2 quantity_ck3
----------- ----------- --------- -------- -------- ------- ----------- --------------------------------------- ----------- ------------ ------------ ------------
1 1 小米 广东 阿里 良 10000 3.00 XM 10000 1000 NULL
2 1 小米 山东 淘宝 优 20000 2.50 XM 1000 NULL 1000
3 2 大米 山东 淘宝 良 5000 2.00 DM NULL 900 NULL
4 2 大米 吉林 阿里 良 5000 4.00 DM NULL NULL NULL
5 5 高梁 安徽 易趣 优 10000 2.00 GL 1000 NULL NULL
6 4 大麦 四川 当当 差 4000 2.00 DM NULL NULL NULL
7 6 土豆 黑龙江 京东 优 20000 1.00 TD NULL NULL 1000
(7 行受影响)
*/