Me he enfrentado a otro problema señor Libras
estolo tengo qeu hacer dinamico segun mi aplicativo. Lo meti todo a un procedimiento almacenado de la siguiente manera
Código SQL:
Ver originalUSE [LF_20DIC]
GO
/****** Object: StoredProcedure [dbo].[PA_RPT_DUPLICADOS_RFC] Script Date: 01/21/2014 10:59:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[PA_RPT_DUPLICADOS_NOMBRE]
@AÑOQUIN nVARCHAR(50)
AS
DECLARE @QUERY nVARCHAR(MAX),@QUERY2 nVARCHAR(MAX),@QUERY3 nVARCHAR(MAX)
BEGIN try
BEGIN tran
IF OBJECT_ID('tempdb..#duplicados') IS NOT NULL DROP TABLE #duplicados
IF OBJECT_ID('tempdb..#rfc') IS NOT NULL DROP TABLE #rfc
SET @QUERY = 'SELECT * INTO #rfc FROM
(SELECT PRD.NUMREC,RFCH,PRD.NOMBRE,PRD.IMPNET,PRD.CENRES,PRD.IDTIPNOM, PRD.FECHPAGO,PRD.BANCO,PRD.INSTR,PRD.NUMCTA,PRD.CODIGO,COUNT(RFCH) CANTIDAD FROM(
SELECT RFCH RFC, NOMBRE , COUNT (RFCH) CANTIDAD,IDDESNOM
FROM '+@AÑOQUIN +' PRD
WHERE IDDESNOM = ''11''
GROUP BY RFCH,NOMBRE,IDDESNOM
HAVING COUNT (RFCH) >= 2
) DUPLICADOS INNER JOIN '+@AÑOQUIN +' PRD ON DUPLICADOS.RFC = PRD.RFCH
WHERE PRD.IDDESNOM LIKE ''11''GROUP BY RFCH,PRD.CENRES,PRD.BANCO,PRD.BANCO,PRD.NOMBRE,PRD.NUMREC,PRD.IMPNET,PRD.CODIGO,PRD.IDTIPNOM,PRD.FECHPAGO,PRD.INSTR,PRD.NUMCTA) TODOS
INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
ORDER BY TODOS.RFCH'
EXEC sp_executesql @QUERY
SET @QUERY2 = 'SELECT * INTO #duplicados FROM (SELECT PRD.NUMREC,RFCH ,PRD.NOMBRE,PRD.IMPNET,PRD.CENRES,PRD.IDTIPNOM, PRD.FECHPAGO,PRD.BANCO,PRD.INSTR,PRD.NUMCTA,PRD.CODIGO,COUNT(RFCH) CANTIDAD FROM(
SELECT NOMBRE , COUNT (NOMBRE) CANTIDAD
FROM '+@AÑOQUIN +' PRD
WHERE IDDESNOM = ''11''
GROUP BY NOMBRE
HAVING COUNT (NOMBRE) >= 2
) DUPLICADOS INNER JOIN '+@AÑOQUIN +' PRD ON DUPLICADOS.NOMBRE = PRD.NOMBRE
WHERE PRD.IDDESNOM LIKE ''11''GROUP BY RFCH,PRD.CENRES,PRD.BANCO,PRD.BANCO,PRD.NOMBRE,PRD.NUMREC,PRD.IMPNET,PRD.CODIGO,PRD.IDTIPNOM,PRD.FECHPAGO,PRD.INSTR,PRD.NUMCTA
) TODO
INNER JOIN tipnomina NOM ON TODO.IDTIPNOM = NOM.id_nomina
ORDER BY TODO.NOMBRE'
EXEC sp_executesql @QUERY2
SET @QUERY3 = 'SELECT * FROM #duplicados AS t1 LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre) WHERE t2.nombre IS NULL'
EXEC sp_executesql @QUERY3
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
PRINT error_message()
END CATCH
pero me arroja un error
Cita: (20 filas afectadas)
(60 filas afectadas)
El nombre de objeto '#duplicados' no es válido.
A que se debe?