问题描述
我在查询中添加了一条新语句。我也想计算单价,但我正在使用“ ORA-00904:“ TOTAL_COST”:无效的标识符ERROR“为什么? 我该怎么做? 预先感谢
Sum (A.Cost_Labor)+Sum (A.Cost_Material)+Sum ( A.Machine_Hours*C.Rate_Per_Hour) As Total_Cost,Total_Cost/A.Quantity_Produced as unit_price
´´´
Here is my whole query:
```
Select A.Job_Id,A.Location_Id,B.Location_Name,Substr(D.Contract_Date,4) As Year_Contract_Date,5,2) As Month_Contract_Date,Sum (A.COST_LABOR)As Sum_COST_LABOR,Sum (A.Cost_Material) As Sum_Material_Cost,Sum ( A.Cost_Overhead) As Sum_Cost_Overhead,Sum ( A.Machine_Hours*C.Rate_Per_Hour) As Sum_Machine_Cost,Sum(A.Quantity_Produced) As Sum_Quant_Prod,Sum (A.Cost_Labor)+Sum (A.Cost_Material)+Sum ( A.Machine_Hours*C.Rate_Per_Hour) As Total_Cost,Total_Cost/A.Quantity_Produced as unit_price
From W_Sub_Job_F A,W_Location_D B,W_Machine_Type_D C,W_Job_F D,W_Time_D E
Where A.Job_Id=D.Job_Id
And A.Location_Id=B.Location_Id
And A.Machine_Type_Id=C.Machine_Type_Id
And D.Contract_Date=E.Time_Id
Group By A.Job_Id,D.Contract_Date
order by A.Job_Id,Year_Contract_Date,Month_Contract_Date ;
´´´
解决方法
此:
Sum (Sum (A.COST_LABOR)+Sum (A.Cost_Material)+Sum ( A.Machine_Hours*C.Rate_Per_Hour))As Total_Cost
应该只是
Sum (A.COST_LABOR) + Sum (A.Cost_Material) + Sum ( A.Machine_Hours * C.Rate_Per_Hour) total_cost
关于另一个问题(TOTAL_COST
的ORA-00904):您不能在同一SELECT
中引用它;要么将当前查询用作内联视图,要么使用整个计算(使TOTAL_COST
)来计算UNIT_PRICE
,例如
Sum (A.Cost_Labor)+Sum (A.Cost_Material)+Sum ( A.Machine_Hours*C.Rate_Per_Hour) As Total_Cost,--
(Sum (A.Cost_Labor)+Sum (A.Cost_Material)+Sum ( A.Machine_Hours*C.Rate_Per_Hour)) / A.Quantity_Produced as unit_price
-------------------------------------------------------------------------------
^^^^ this is TOTAL_COST
,
您不能以这种方式使用TOTAL_COST,它是一个伪列。您可以改用子选择
A{3}B{2}