Sum如果在嵌套选择中

时间:2014-06-10 21:23:28

标签: mysql

我有一个查询,其中“停机时间”字段的值不正确。

然而,如果我只运行“停机”查询,我会得到确切的结果。我在哪里做错了?

SELECT 
        LineaID,
        SezioneID,
        Desc_Prod,
        cod_spezz,
        l_spezz_stf,
        l_spezz,
        MtScarto,
        MtScarto1,
        MT_Prodotti,
        Pezzi_Prodotti,
        downtime,
        REPLACE(FORMAT((MtScarto1 / l_spezz), 0), ',' , '.') as ScartoInPezzi,
        REPLACE(FORMAT(((tempi * Speed) / l_spezz), 0), ',' , '.') AS MinFermoInPezzi,
        speed
FROM
(
(SELECT
       FLA.FLA_prod.LineaID,
       FLA.FLA_prod.SezioneID,
       FLA.FLA_prod.Desc_Prod AS Desc_Prod,
       FLA.FLA_Prod.cod_spezz_1 AS cod_spezz,
       FLA.FLA_Prod.lung_Spezz_1 as l_spezz_stf,
       REPLACE(FORMAT((SUBSTRING_INDEX(FLA.FLA_Prod.lung_Spezz_1, '± ', 1) / 1000) ,2) , ',' , '.') as l_spezz,
       REPLACE(FORMAT(SUM(FLA.FLA_Prod.MtScrap) , 0) , ',' , '.') as MtScarto,
       SUM(FLA.FLA_Prod.MtScrap) AS MtScarto1,
       REPLACE(FORMAT(SUM((PzProd1 + PzProd2 + PzProd3 + PzProd4 + PzProd5 + PzProd6) * REPLACE(FORMAT((SUBSTRING_INDEX(
       FLA.FLA_Prod.lung_Spezz_1, '± ', 1) / 1000) ,2) , ',' , '.' )) ,0), ',' , '.') AS MT_Prodotti,
        SUM(
        FLA.FLA_prod.PzProd1 +  
        FLA.FLA_prod.PzProd2 +  
        FLA.FLA_prod.PzProd3 + 
        FLA.FLA_prod.PzProd4 + 
        FLA.FLA_prod.PzProd5 + 
        FLA.FLA_prod.PzProd6
        ) AS Pezzi_Prodotti,
        FLA.FLA_prod.VelSpecifica AS Speed,
REPLACE(FORMAT((
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_1 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_1 , 0)) + 
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_2 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_2 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_3 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_3 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_4 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_4 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_5 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_5 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.AvailableCausa_6 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.AvailableTotTime_6 , 0)) +  

SUM(IF(FLA.FLA_CAUSALI.Causa_1 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_1 , 0)) + 
SUM(IF(FLA.FLA_CAUSALI.Causa_2 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_2 , 0)) + 
SUM(IF(FLA.FLA_CAUSALI.Causa_3 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_3 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.Causa_4 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_4 , 0)) + 
SUM(IF(FLA.FLA_CAUSALI.Causa_5 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_5 , 0)) +  
SUM(IF(FLA.FLA_CAUSALI.Causa_6 NOT LIKE ('%sezione%'),FLA.FLA_CAUSALI.Total_Time_6 , 0))),0), ',' , '.') as downtime


FROM FLA.FLA_Prod 

JOIN FLA.FLA_CAUSALI
ON ((FLA.FLA_Prod.giorno = FLA.FLA_CAUSALI.DataStartPrg) AND (FLA.FLA_prod.SezioneID = FLA.FLA_CAUSALI.IDSezione))

WHERE ((FLA.FLA_Prod.giorno) AND (FLA.FLA_CAUSALI.DataStartPrg) BETWEEN '2014-04-07' AND '2014-04-12') AND (FLA.FLA_prod.SezioneID = FLA.FLA_CAUSALI.IDSezione)

GROUP BY SezioneID
ORDER BY SUM(FLA.FLA_Prod.MtScrap) DESC 

) AS FLA

)GROUP BY SezioneID

0 个答案:

没有答案