日期:2014-05-18 浏览次数:20441 次
--查询日期前进货和进货退货量,及其总额 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 组合两个查询的结果集的两个基本规则是:
所有查询中的列数和列的顺序必须相同。
数据类型必须兼容。