您的位置:首页 > 数据库

union合并查询结果

2017-06-11 09:17 232 查看
表说明:

1)  出货单:Delivery, DeliveryGoods,DeliveryDetail

2)  核销单:Check, CheckGoods, CheckDetail

 出货单主表(Delivery)

字段名

中文描述

备注

DeliveryID

出货单

主键

DeliveryDate

出货日期

 

ManualId

手工单号

 

 出货单货品明细表(DeliveryGoods)

字段名

中文描述

备注

DeliveryGoodsID

 

 

DeliveryID

出货单

外键

Goods_No

货号

 

UnitPric

单价

 

 

 出货单货品规格明细表(DeliveryDetail)

字段名

中文描述

备注

ID

 

主键

DeliveryGoodsID

 

外键

ColorID

颜色

 

Long

内长

 

Size

尺码

 

Quantity

数量

 

 

 核销单主表(Check)

字段名

中文描述

备注

CheckID

核销单

主键

CheckDate

核销日期

 

ManualId

手工单号

 

 

 核销单货品明细表(CheckGoods)

字段名

中文描述

备注

CheckGoodsID

 

 

CheckID

 

外键

Goods_No

货号

 

UnitPric

单价

 

 

 核销单货品规格明细表(CheckDetail)

字段名

中文描述

备注

ID

 

主键

CheckGoodsID

 

外键

ColorID

颜色

 

Long

内长

 

Size

尺码

 

Quantity

数量

 

 

要求实现以下查询结果:

项目

单据日期

货号

颜色

数量

金额

出货单

2007-04-09

021234

01

2

20

出货单

2007-04-09

011234

01

7

350

核销单

2007-05-10

011234

02

6

300

SQL代码:

ALTER PROCEDURE  [dbo].[test]
@type char(200)=''

AS
BEGIN
if(@type='test_main')
begin

SELECT  (CASE WHEN Checkd.CheckID>0 THEN '核销单' else '不存在' end) as 项目, Checkd.CheckDate as 单据日期, CheckGoods.Goods_No as 货号,
CheckDetail.ColorID as 颜色, CheckDetail.Quantity as 数量, CheckGoods.UnitPric*CheckDetail.Quantity as 金额
FROM     Checkd
INNER JOIN CheckGoods ON Checkd.CheckID = CheckGoods.CheckID
INNER JOIN CheckDetail ON CheckDetail.CheckGoodsID=CheckGoods.CheckGoodsID

union  -- union合并表

SELECT   (CASE WHEN Delivery.DeliveryID>0 THEN '出货单' end) as 项目, Delivery.DeliveryDate as 单据日期, DeliveryGoods.Goods_No as 货号,
DeliveryDetail.ColorID as 颜色, DeliveryDetail.Quantity as 数量, DeliveryGoods.UnitPric*DeliveryDetail.Quantity as 金额
FROM     Delivery
INNER JOIN DeliveryGoods ON Delivery.DeliveryID = DeliveryGoods.DeliveryID
INNER JOIN DeliveryDetail ON	DeliveryDetail.DeliveryGoodsID= DeliveryGoods.DeliveryGoodsID

order by 项目 asc, 单据日期 desc,货号 desc,数量 desc --多条件排序

end
END

查询结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息