2
现在我有3个表SQL查询替换UNION ALL与加入或东西
订单:
ID |日期|机器|规划
GoodPieces:
ID |日期|机器|件| |产品
BadPieces:
ID |日期|机器|件| |产品|组件
查询的输出是
日期|机器|计划| GoodPieces | BadPieces
的实际查询是类似的东西:
SELECT
data.Date AS Date,
data.Machine AS Machine,
SUM(CASE WHEN data.type = 'Planning' THEN data.value END) AS Planning,
SUM(CASE WHEN data.type = 'GoodPieces' THEN data.value END) AS GoodPieces,
SUM(CASE WHEN data.type = 'BadPieces' THEN data.value END) AS BadPieces
FROM
(SELECT
'Planning' AS Type,
Date AS Date,
Machine AS Machine,
Planning AS Value
FROM Orders
UNION ALL
SELECT
'GoodPieces',
Date,
Machine,
Pieces AS Value
FROM GoodPieces
UNION ALL
SELECT
'BadPieces'
Date,
Machine,
Pieces AS Value
FROM BadPieces) AS data
GROUP BY
Date,
Machine
我的问题,如果是有没有办法让这个3个表
订单相同的输出:
ID |日期|机|规划
GoodPieces:
的OrderID |件| |产品
BadPieces:
的OrderID |件| |产品|组件
感谢,
如果'OrderID'在'BadPieces'中是唯一的,这将起作用。尝试添加(8,1)到'BadPieces'。 “BothTest”的计算结果是错误的。 – 2012-04-14 21:51:12
@MikaelEriksson:极好的一点!我已通过在子查询中通过'OrderID'将'GoodPieces'和'BadPieces'中的数据汇总在一起进行了更新。现在的数据甚至与您的案例相匹配,在这里测试原始查询:http://www.sqlfiddle.com/#!3/1698e/3 – mellamokb 2012-04-14 22:59:41
SQL FIDDLE我不知道那个页面..谢谢你这么匹配..并感谢您的解决方案 – leinho 2012-04-16 23:37:51