【发布时间】:2018-08-21 23:46:52
【问题描述】:
我有一个问题,当我在 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
谢谢
【问题讨论】:
-
显然 SQL Server 2005 不支持从 select 创建临时表的简写,而是将其切换为使用顶部查询作为子查询并从中选择。
-
我不知道该怎么做,请您给我更多帮助
-
使用
WITH ....的通用表表达式 (CTE) 功能是 SQL Server 2008 中的一项新功能 - 您无法运行此代码2005 年 -
那我该怎么办?
标签: sql-server-2005 common-table-expression with-statement