0

我有 3 张桌子(JM、JCD 和 JEO)。JM 是具有 PK JobNo 的父级。JCD 和 JEO 都是 FK 的 JobNo 的 JM 的孩子。

下面是我正在为其编写查询的 3 个表中所需的输出表(对于糟糕的格式感到抱歉 - 它不会让我发布图像:()

杰米

JobNo
------    
13088
13100

JCD

JobNo   CostType Amount
----------------------------    
13088   10  100
13088   10  105
13088   23  120
13088   24  130
13088   25  140
13088   26  50
13088   90  50
13100   25  5
13100   90  10

JEO

JobNo   CostType    Estimate
-------------------------------------    
13088   10  50
13088   11  60
13088   24  10
13088   30  100
13100   25  310

输出

JobNo   CostType Amount Estimate
------------------------------------
13088   10      100 0                   
13088   10  105 0                   
13088   23  120 0                   
13088   24  130 0                   
13088   25  140 0                   
13088   26  50  0                   
13088   10  0   50                  
13088   11  0   60                  
13088   24  0   10                  
13088   30  0   100                 
13100   25  5   0                   
13100   25  0   310                 

关于实现这一目标的代码有什么想法吗?

(请注意,结果表不包括 JCD.CostType 等于 90 的任何行)。

我已经尝试过这样的事情,但它不起作用:(

SELECT JM.JobNo, JCD.CostType, JCD.Amount, JEO.Estimate
FROM JM
FULL OUTER JOIN JCD ON JM.JobNo = JCD.JobNo
FULL OUTER JOIN JEO ON JM.JobNo = JEO.JobNo
WHERE JCD.CostType != 90
GROUP BY JM.JobNo, JCD.CostType, JCD.Amount, JEO.Estimate
4

1 回答 1

0

尝试这个

SELECT 
  JM.JobNo, JCD.CostType, JCD.Amount, 0 as Estimate
FROM 
  JM, JCD 
WHERE 
  JCD.CostType != 90 AND JM.JobNo = JDC.JobNo
GROUP BY 
  JM.JobNo, JCD.CostType, JCD.Amount 

UNION ALL

SELECT 
  JM.JobNo, JCD.CostType, 0 as Amount,  JEO.Estimate 
FROM 
  JM, JEO
WHERE 
  JM.JobNo = JEO.JobNo
GROUP BY 
  JM.JobNo, JCD.CostType, JCD.Estimate 
ORDER BY 
 JM.JobNo
于 2013-10-01T12:29:56.677 回答