我有一个拉动计算的select语句,其中一个是自身的选择。这就是我想要运行的东西:
SELECT Sum(AIRMODEL_NETWORK_SUMMARY.COMBINED_CASES) AS Total_Volume,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.COMBINED_CASES), 2) AS Average_Volume,
Sum(AIRMODEL_NETWORK_SUMMARY.CASES_PRODUCED) AS Producivity,
Sum(AIRMODEL_NETWORK_SUMMARY.STOCKING_LEVEL) AS Total_Inventory,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.STOCKING_LEVEL), 2) AS Average_Inventory,
Count(DISTINCT AIRMODEL_NETWORK_SUMMARY.LOC_ID) AS Nbr_of_plants,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.health_score), 2) AS Network_Capacity,
Sum(AIRMODEL_NETWORK_SUMMARY.Current_SQFT) AS total_SQFT,
Sum(AIRMODEL_NETWORK_SUMMARY.Current_AVAIL_SQFT) AS SumOfCurrent_AVAIL_SQFT,
Count(DISTINCT AIRMODEL_NETWORK_SUMMARY.Routes) AS nbr_of_Route,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.Routes), 2) AS Avg_nbr_Routes,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.DockDoor_Utilization), 2) AS AvgOfDockDoor_Utilization,
Sum(AIRMODEL_NETWORK_SUMMARY.Layer_Pickers) AS SumOfLayer_Pickers,
Sum(AIRMODEL_NETWORK_SUMMARY.nbr_canopies) AS SumOfnbr_canopies,
Sum(AIRMODEL_NETWORK_SUMMARY.nbr_DriveTHRUS) AS SumOfnbr_DrivETHRUS,
(Select Sum(MAX_TRUCKS_IN_CANOPY + MAX_TRUCKS_IN_DT_LOADING) from icam_locations),
Sum(AIRMODEL_NETWORK_SUMMARY.nbr_Returns) AS SumOfnbr_Returns,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.nbr_Returns), 2) AS AvgOfnbr_Returns,
trunc((Sum(OUT_OF_STOCK_QTY) / Sum(combined_cases)), 2) AS Out_of_Stock_Pct,
Sum(AIRMODEL_NETWORK_SUMMARY.CountOfINVEN_ID) AS SumOfCountOfINVEN_ID,
SUM(AIRMODEL_NETWORK_SUMMARY.SKU_CAPACITY) AS SUMOfSKU_CAPACITY,
Sum(AIRMODEL_NETWORK_SUMMARY.Sales) AS SumOfSales,
TRUNC(Avg(AIRMODEL_NETWORK_SUMMARY.Sales), 2) AS AvgOfSales
FROM AIRMODEL_NETWORK_SUMMARY
INNER JOIN ICAM_LOCATIONS
ON AIRMODEL_NETWORK_SUMMARY.LOC_ID = ICAM_LOCATIONS.LOCATION_ID
WHERE
TRIM((FSCL_YR_NUM * 100) +(FSCL_WK_IN_YR_NUM)) >= TRIM(('&PARM_FROM_DATE'))
AND TRIM((FSCL_YR_NUM * 100) +(FSCL_WK_IN_YR_NUM)) <= TRIM(('&PARM_TO_DATE'))
ORDER BY AIRMODEL_NETWORK_SUMMARY.LOC_ID
我正在玩它并尝试如下:
WITH STUFF_COUNT AS
(
SELECT ICAM_LOCATIONS.LOCATION_ID, (MAX_TRUCKS_IN_CANOPY+ MAX_TRUCKS_IN_DT_LOADING) AS VAL2
FROM ICAM_LOCATIONS
GROUP BY LOCATION_ID, MAX_TRUCKS_IN_CANOPY, MAX_TRUCKS_IN_DT_LOADING
)
SELECT SUM(Z.VAL2),
Sum(S.COMBINED_CASES) AS Total_Volume,
TRUNC(Avg(S.COMBINED_CASES), 2) AS Average_Volume,
Sum(S.CASES_PRODUCED) AS Producivity,
Sum(S.STOCKING_LEVEL) AS Total_Inventory,
TRUNC(Avg(S.STOCKING_LEVEL), 2) AS Average_Inventory,
Count(DISTINCT S.LOC_ID) AS Nbr_of_plants,
TRUNC(Avg(S.health_score), 2) AS Network_Capacity,
Sum(S.Current_SQFT) AS total_SQFT,
Sum(S.Current_AVAIL_SQFT) AS SumOfCurrent_AVAIL_SQFT,
Count(DISTINCT S.Routes) AS nbr_of_Route,
TRUNC(Avg(S.Routes), 2) AS Avg_nbr_Routes,
TRUNC(Avg(S.DockDoor_Utilization), 2) AS AvgOfDockDoor_Utilization,
Sum(S.Layer_Pickers) AS SumOfLayer_Pickers,
Sum(S.nbr_canopies) AS SumOfnbr_canopies,
SUM(S.NBR_DRIVETHRUS) AS SUMOFNBR_DRIVETHRUS,
Sum(S.nbr_Returns) AS SumOfnbr_Returns,
TRUNC(Avg(S.nbr_Returns), 2) AS AvgOfnbr_Returns,
trunc((Sum(OUT_OF_STOCK_QTY) / Sum(combined_cases)), 2) AS Out_of_Stock_Pct,
Sum(S.CountOfINVEN_ID) AS SumOfCountOfINVEN_ID,
SUM(S.SKU_CAPACITY) AS SUMOfSKU_CAPACITY,
Sum(S.Sales) AS SumOfSales,
TRUNC(AVG(S.SALES), 2) AS AVGOFSALES
FROM AIRMODEL_NETWORK_SUMMARY S, ICAM_LOCATIONS D, STUFF_COUNT Z
WHERE S.LOC_ID = D.LOCATION_ID
AND TRIM((FSCL_YR_NUM * 100) +(FSCL_WK_IN_YR_NUM)) >= TRIM(('&PARM_FROM_DATE'))
AND TRIM((FSCL_YR_NUM * 100) +(FSCL_WK_IN_YR_NUM)) <= TRIM(('&PARM_TO_DATE'))
ORDER BY S.LOC_ID;
这两者都没有给我预期的结果,但是当我单独运行它们时,我得到了所需要的东西。此外,我无法创建任何其他表格来编写等。它显然需要作为一个整体来完成(正如众神所要求的那样,或至少由付费公司所要求)
我通常会遇到这个错误,当我尝试调整它时,我会发现其他随机错误。
SQL错误:ORA-00937:不是单组组功能。
答案 0 :(得分:0)
删除
ORDER BY S.LOC_ID
你不能在那里使用任何不在GROUP BY中的cols(或者不是聚合函数/ select expr别名/列号,例如ORDER BY 1
)
P.S。它在这个查询中没有任何意义