请教如何把下面的SQL合并到一句SQL里,多谢了
--查询日期前进货和进货退货量,及其总额
Select sum(case 类型 when '进货单' then 数量 else 0 end) As 进货量,
sum(case 类型 when '进货单' then 数量*单价 else 0 end) As 进货总额,
sum(Case 类型 When '进货退货单' Then 数量 Else 0 End) As 进货退货量,
sum(case 类型 when '进货退货单' then 数量*单价 else 0 end) As 货退货总额
From 进货退货 Where 日期 < @StartDate
--查询日期前调入,调出量,及其总额
Select sum(case 类型 when '调入单' then 数量 else 0 end) As 调入量,
sum(case 类型 when '调入单' then 数量*单价 else 0 end) As 调入总额,
sum(Case 类型 When '调出单' Then 数量 Else 0 End) As 调出量,
sum(case 类型 when '调出单' then 数量*单价 else 0 end) As 调出总额
From 调拨 Where 日期< @StartDate
--查询日期时间段内进货和进货退货量,及其总额
Select sum(case 类型 when '进货单' then 数量 else 0 end) As 进货量,
sum(case 类型 when '进货单' then 数量*单价 else 0 end) As 进货总额,
sum(Case 类型 When '进货退货单' Then 数量 Else 0 End) As 进货退货量,
sum(case 类型 when '进货退货单' then 数量*单价 else 0 end) As 货退货总额
From 进货退货 Where 日期 Between @StartDate And @EndDate
--查询日期时间段内调入,调出量,及其总额
Select sum(case 类型 when '调入单' then 数量 else 0 end) As 调入量,
sum(case 类型 when '调入单' then 数量*单价 else 0 end) As 调入总额,
sum(Case 类型 When '调出单' Then 数量 Else 0 End) As 调出量,
sum(case 类型 when '调出单' then 数量*单价 else 0 end) As 调出总额
From 调拨 Where 日期 Between @StartDate And @EndDate
------解决方案--------------------
用union all联结起来就行了。 。
------解决方案--------------------
- SQL code
--查询日期前进货和进货退货量,及其总额 Select sum(case 类型 when '进货单 ' then 数量 else 0 end) As 进货量, sum(case 类型 when '进货单 ' then 数量*单价 else 0 end) As 进货总额, sum(Case 类型 When '进货退货单 ' Then 数量 Else 0 End) As 进货退货量, sum(case 类型 when '进货退货单 ' then 数量*单价 else 0 end) As 货退货总额, item = '查询日期前进货和进货退货量,及其总额' From 进货退货 Where 日期 < @StartDate union all--查询日期前调入,调出量,及其总额 Select sum(case 类型 when '调入单 ' then 数量 else 0 end) As 调入量, sum(case 类型 when '调入单 ' then 数量*单价 else 0 end) As 调入总额, sum(Case 类型 When '调出单 ' Then 数量 Else 0 End) As 调出量, sum(case 类型 when '调出单 ' then 数量*单价 else 0 end) As 调出总额 , item = '查询日期前调入,调出量,及其总额' From 调拨 Where 日期 < @StartDate union all--查询日期时间段内进货和进货退货量,及其总额 Select sum(case 类型 when '进货单 ' then 数量 else 0 end) As 进货量, sum(case 类型 when '进货单 ' then 数量*单价 else 0 end) As 进货总额, sum(Case 类型 When '进货退货单 ' Then 数量 Else 0 End) As 进货退货量, sum(case 类型 when '进货退货单 ' then 数量*单价 else 0 end) As 货退货总额, item = '查询日期时间段内进货和进货退货量,及其总额' From 进货退货 Where 日期 Between @StartDate And @EndDate union all--查询日期时间段内调入,调出量,及其总额 Select sum(case 类型 when '调入单 ' then 数量 else 0 end) As 调入量, sum(case 类型 when '调入单 ' then 数量*单价 else 0 end) As 调入总额, sum(Case 类型 When '调出单 ' Then 数量 Else 0 End) As 调出量, sum(case 类型 when '调出单 ' then 数量*单价 else 0 end) As 调出总额 , item = '查询日期时间段内调入,调出量,及其总额 ' From 调拨 Where 日期 Between @StartDate And @EndDate
------解决方案--------------------
union all 连接
------解决方案--------------------
给个数据啊 看得我头都大了
------解决方案--------------------
使用 UNION 组合两个查询的结果集的两个基本规则是:
所有查询中的列数和列的顺序必须相同。
数据类型必须兼容。