ya lo solucione metiendolo todo a un solo @QUERY
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
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
SELECT * FROM #duplicados AS t1
LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
WHERE t2.nombre IS NULL'
EXEC sp_executesql @QUERY
--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