Ok tengo 2 preguntas 1) he buscado en google el error(en el título), pero me parece que no puede conseguir para que me ayude, mi 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

He atado de añadir ) para NVARCHAR(255))) AS [Count] pero todavía errores,

2)necesito conseguir AS [Count] como un porcentaje, si alguien puede ayudar? Que es mi código try tal vez estoy en el camino correcto.?

  • ET NOCOUNT ON falta S es un error tipográfico?
  • Que es pegar el error.
InformationsquelleAutor Ruan | 2014-01-08

4 Comentarios

  1. 4

    Falta un cierre de paréntesis en el final de subselección. También le falta la » S » en el SET NOCOUNT. Actualizaciones de abajo.

    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
  2. 0

    Es la falta de la ‘S’ en SET NOCOUNT ON después de la inicial de comenzar tal vez?

    • Que es una pasta de error
  3. 0

    Parece que su SELECT declaración sobre su última última FROM declaración de naciones unidas cierra paréntesis. Que haría el analizador de tirar un error cuando llega a la END declaración, ya que todavía piensa que está trabajando en la SELECT.

    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]
    ^

    Siempre que obtenga una incorrect Syntax error es mejor ir con cuidado a través de su código y comprobar que todas las declaraciones están bien formadas y completa. Normalmente google no puede ayudarle, ya que es muy específico para el código. Un buen enfoque para encontrar la falla es localizar el punto del error (END en este caso) y trabajar hacia atrás. La causa del error puede ser muy muy por encima de el punto real en que se produce el error, pero será en algún lugar por encima de la de error. Y la lectura hacia atrás puede ayudar a detectar errores simples.

  4. 0
    Create Table TblAccount (UserName nvarchar(20) Primary Key,UserPwd varchar(20) not null)
    Declare @i int
    Set @i=1
    While @i<=10
    I have one question 
    BEGIN
    Insert INTO TblAccount Values('Seng Vitou'+CAST(@i AS VARCHar(2)),REVERSE('pwd'+CAST(@i as varchar(2))
    SET @i[email protected]i+1
    End   
    Msg 156, Level 15, State 1, Line 11
    Incorrect syntax near the keyword 'SET'.

Dejar respuesta

Please enter your comment!
Please enter your name here