SQL查询中的奇怪行为

时间:2014-05-13 21:11:11

标签: mysql

晚上好, 作为主题,我有一个查询,其中可以使用参数,前面是@字符,以便进行计算。为了使用MySQL Front测试此查询。问题是如果你第一次启动查询,我期望返回数据,但如果再次运行它,我不会返回任何内容。我也尝试过使用Toad,但是从第一次尝试开始就没有返回任何内容。提前谢谢。

SELECT(
SUM(
PzProd1 + 
PzProd2 + 
PzProd3 + 
PzProd4 + 
PzProd5 + 
PzProd6
)) AS Pezzi_Prodotti,

PSLC.PSLC_Prod.LineaID as linea,
PSLC.PSLC_Prod.SezioneID,
PSLC.PSLC_Prod.Desc_Prod,

@cod_spezz := PSLC.PSLC_Prod.cod_spezz_1,

@l_spezz := REPLACE(FORMAT((SUBSTRING_INDEX(
PSLC.PSLC_Prod.lung_Spezz_1, '± ', 1) / 1000) ,2) , ',' , '.'
) as lunghezza_Spezzone,

REPLACE(FORMAT( @MtScrap := SUM(MtScrap) , 0) , ',' , '.') as MtScarto, 

REPLACE(FORMAT((@MtScrap / @l_spezz),0), ',' , '.') as ScartoInPezzi , 

REPLACE(FORMAT(SUM((PzProd1 + PzProd2 + PzProd3 + PzProd4 + PzProd5 + PzProd6) * @l_spezz) ,0), ',' , '.') as MT_Prodotti, 

REPLACE(FORMAT( @xxx := (
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_1 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_1 , 0)) + 
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_2 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_2 , 0)) +  
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_3 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_3 , 0)) +  
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_4 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_4 , 0)) +  
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_5 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_5 , 0)) +  
SUM(IF(PSLC.PSLC_CAUSALI.AvailableCausa_6 NOT LIKE ('%sezione%'),PSLC.PSLC_CAUSALI.AvailableTotTime_6 , 0)) +  

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

 @a := SAMPLE.products.vel_linea as Vel, 
 REPLACE(FORMAT(((@xxx * @a) / @l_spezz) ,0), ',' , '.') as MinFermoInPezzi 

 FROM PSLC.PSLC_Prod 
 JOIN PSLC.PSLC_CAUSALI ON ( 
 (PSLC.PSLC_Prod.SezioneID = PSLC.PSLC_CAUSALI.IDSezione) and 
 (PSLC.PSLC_prod.giorno = PSLC.PSLC_CAUSALI.DataStartPrg)  AND ( 
 (PSLC.PSLC_prod.Cod_Spezz_1 = PSLC.PSLC_CAUSALI.IDSpezzone) OR 
 (PSLC.PSLC_prod.Cod_Spezz_2 = PSLC.PSLC_causali.IDSpezzone) OR 
 (PSLC.PSLC_prod.Cod_Spezz_3 = PSLC.PSLC_causali.IDSpezzone) OR 
 (PSLC.PSLC_prod.Cod_Spezz_4 = PSLC.PSLC_CAUSALI.IDSpezzone) OR 
 (PSLC.PSLC_prod.Cod_Spezz_5 = PSLC.PSLC_causali.IDSpezzone) OR 
 (PSLC.PSLC_prod.Cod_Spezz_6 = PSLC.PSLC_causali.IDSpezzone) ) AND 
 PSLC.PSLC_prod.ID_Prog =  PSLC.PSLC_CAUSALI.ID_Prog) 

 JOIN sample.products ON (
 PSLC.PSLC_Prod.SezioneID = sample.products.sku) 

 WHERE (PSLC.PSLC_Prod.giorno BETWEEN '2014-05-05' AND '2014-05-09') AND 
 (PSLC.PSLC_Prod.SezioneID = PSLC.PSLC_CAUSALI.IDSezione) AND ( 
 ((PSLC.PSLC_prod.Cod_Spezz_1 = @cod_spezz) OR 
 (PSLC.PSLC_prod.Cod_Spezz_2 = @cod_spezz) OR 
 (PSLC.PSLC_prod.Cod_Spezz_3 = @cod_spezz) OR 
 (PSLC.PSLC_prod.Cod_Spezz_4 = @cod_spezz) OR 
 (PSLC.PSLC_prod.Cod_Spezz_5 = @cod_spezz)  OR 
 (PSLC.PSLC_prod.Cod_Spezz_6 = @cod_spezz))
 )

0 个答案:

没有答案