'WITH'附近的语法错误

时间:2018-03-13 16:14:10

标签: sql-server-2005 common-table-expression with-statement

我有一个问题,当我在SQL Server 2014中执行查询时它正在工作,但是当我在SQL Server 2005中执行它时,我在'WITH'附近得到“语法错误”;有人能帮我吗?

这是我的问题:

WITH TMP AS 
(
    SELECT  
        INWI.Date ,
        Equipe_Cad.MatBCC,
        INWI.Matricule_FS,
        Equipe_Cad.Employe,
        Equipe_Cad.Equipe,Equipe_Cad.Societe,
        Projet.Projet,
        INWI.Quantite,
        RIGHT('0' + INWI.Tps_Net, 9) C 
    FROM
        INWI 
    INNER JOIN 
        Equipe_Cad ON INWI.Matricule_FS = Equipe_Cad .MatFS 
    INNER JOIN 
        Projet ON Projet.EtapeTraitement = 'INWI_PREPAID'  
    WHERE 
        INWI.Date = '02/03/2018'    
)
SELECT  
    Date,
    MatBCC AS Matricule_BCC,
    Matricule_FS,Employe AS Nom,Equipe,Societe,
    Projet,
    CAST(SUM(Quantite)AS int)AS Quantite , 
    SUM(CAST(LEFT(C, 2) AS DECIMAL(10,8)) + 
        CAST(SUBSTRING(C, 4, 2) AS DECIMAL(10,8)) / 60 + 
        CAST(SUBSTRING(C, 7, 2) AS DECIMAL(10,8)) / 3600) AS Temps_Effectif 
FROM 
    TMP 
GROUP BY 
    Date, MatBCC, Matricule_FS, Employe, Equipe, Projet, Societe

谢谢

1 个答案:

答案 0 :(得分:0)

试试这个,它使用原始的WITH查询作为别名为x的子查询,然后从子查询中选择:

SELECT  
    x.Date,
    x.MatBCC AS Matricule_BCC,
    x.Matricule_FS,x.Employe AS Nom,x.Equipe,x.Societe,
    x.Projet,
    CAST(SUM(x.Quantite)AS int)AS Quantite , 
    SUM(CAST(LEFT(x.C, 2) AS DECIMAL(10,8)) + 
        CAST(SUBSTRING(x.C, 4, 2) AS DECIMAL(10,8)) / 60 + 
        CAST(SUBSTRING(x.C, 7, 2) AS DECIMAL(10,8)) / 3600) AS Temps_Effectif 
FROM 
    (
        SELECT  
        INWI.Date ,
        Equipe_Cad.MatBCC,
        INWI.Matricule_FS,
        Equipe_Cad.Employe,
        Equipe_Cad.Equipe,Equipe_Cad.Societe,
        Projet.Projet,
        INWI.Quantite,
        RIGHT('0' + INWI.Tps_Net, 9) C 
    FROM
        INWI 
    INNER JOIN 
        Equipe_Cad ON INWI.Matricule_FS = Equipe_Cad .MatFS 
    INNER JOIN 
        Projet ON Projet.EtapeTraitement = 'INWI_PREPAID'  
    WHERE 
        INWI.Date = '02/03/2018') AS x    
GROUP BY 
    x.Date, x.MatBCC, x.Matricule_FS, x.Employe, x.Equipe, x.Projet, x.Societe