SQL: Msg 156, Niveau 15, État 1 :syntaxe Incorrecte près du mot clé "FIN"
Ok, j'ai 2 questions 1) j'ai googlé cette erreur(dans le titre), mais je ne peux pas sembler obtenir pour m'aider, mon proc:
CREATE PROCEDURE [dbo].[p_Target]
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #tmp1
(
AUD_ID BIGINT,
RowCounter BIGINT,
DistinctCounter BIGINT,
NACounter BIGINT,
Total BIGINT,
[Status] VARCHAR(MAX)
)
INSERT INTO #tmp1 EXEC [p_GetCompleteIncompleteNaOverviewSCORE]
DECLARE @Total AS INT
SELECT @Total = COUNT(*)
FROM (
SELECT CASE WHEN CONVERT(DATETIME,CONVERT(CHAR(10),DATEADD(DAY,0,t2.AUD_TargetDate), 101)) < CONVERT(DATETIME,CONVERT(CHAR(10),DATEADD(DAY,0,GETDATE()), 101))
THEN 'Over Due: '
ELSE 'On Time: ' END AS [Target Status]
FROM #tmp1 t1 INNER JOIN dbo.Audit t2
ON t1.AUD_ID = t2.AUD_ID
WHERE t1.[Status] = 'Open') DER
SELECT ([Target Status] + '' + CAST(COUNT(*) AS NVARCHAR(255)) + ' of ' + CAST(@Total AS NVARCHAR(255))) AS TargetStatus, (SELECT COUNT(*)) * 100 / (SELECT ([Target Status] + '' + CAST(COUNT(*) AS NVARCHAR(255))) AS [Count]
FROM (
SELECT CASE WHEN CONVERT(DATETIME,CONVERT(CHAR(10),DATEADD(DAY,0,t2.AUD_TargetDate), 101)) < CONVERT(DATETIME,CONVERT(CHAR(10),DATEADD(DAY,0,GETDATE()), 101))
THEN 'Over Due: '
ELSE 'On Time: ' END AS [Target Status]
FROM #tmp1 t1 INNER JOIN dbo.Audit t2
ON t1.AUD_ID = t2.AUD_ID
WHERE t1.[Status] = 'Open') DER
GROUP BY [Target Status]
END
GO
J'ai attaché l'ajout d' ) à NVARCHAR(255))) AS [Count]
mais encore des erreurs,
2)j'ai besoin d'obtenir AS [Count]
comme un percentag, si quelqu'un peut aider? C'est mon code try peut-être que je suis sur la bonne voie.?
ET NOCOUNT ON
manquantS
est une faute de frappe?- Qu'est-coller de l'erreur.
Vous devez vous connecter pour publier un commentaire.
Il vous manque un près parenthèse sur votre dernière sous-sélection. Aussi, il vous manque le " S " dans SET NOCOUNT. Les mises à jour ci-dessous.
Est-ce le manque de " S " sur
SET NOCOUNT ON
après la période initiale de commencer peut-être?Il ressemble à votre
SELECT
instruction au-dessus de votre dernierFROM
déclaration a l'onu-fermé entre parenthèses. Que ferait l'analyseur de jeter une erreur quand il frappe lesEND
déclaration, car il pense toujours que c'est de travailler sur laSELECT
.Chaque fois que vous obtenez une
incorrect Syntax
erreur c'est mieux d'abord passer par votre code et vérifier que toutes les déclarations sont bien formés et complète. Habituellement, google ne peut pas vous aider, car c'est très spécifique à votre code. Une bonne approche pour trouver la faille est de localiser le point de l'erreur (END
dans ce cas) et de travailler vers l'arrière. La cause de l'erreur peut être assez loin au-dessus du point réel que l'erreur est levée, mais il sera quelque part au-dessus de l'erreur. Et de la lecture en arrière peut vous aider à attraper les erreurs simples.