Ver Mensaje Individual
  #10 (permalink)  
Antiguo 21/01/2014, 12:35
Avatar de aid_val
aid_val
 
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años, 8 meses
Puntos: 5
Respuesta: Comparar registros de dos consultas.

ya lo solucione metiendolo todo a un solo @QUERY

Código SQL:
Ver original
  1. USE [LF_20DIC]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[PA_RPT_DUPLICADOS_RFC]    Script Date: 01/21/2014 10:59:21 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. ALTER PROC [dbo].[PA_RPT_DUPLICADOS_NOMBRE]
  10.  
  11. @AÑOQUIN nVARCHAR(50)
  12.  
  13.   AS
  14. DECLARE @QUERY nVARCHAR(MAX),@QUERY2 nVARCHAR(MAX),@QUERY3 nVARCHAR(MAX)
  15.  
  16. BEGIN try
  17. BEGIN tran
  18.  
  19. IF OBJECT_ID('tempdb..#duplicados') IS NOT NULL DROP TABLE #duplicados
  20. IF OBJECT_ID('tempdb..#rfc') IS NOT NULL DROP TABLE #rfc
  21.  
  22. SET @QUERY = 'SELECT * INTO #rfc FROM
  23. (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(
  24. SELECT RFCH RFC, NOMBRE ,  COUNT (RFCH) CANTIDAD,IDDESNOM
  25. FROM '+@AÑOQUIN +' PRD
  26. WHERE IDDESNOM = ''11''
  27. GROUP BY RFCH,NOMBRE,IDDESNOM
  28. HAVING COUNT (RFCH) >= 2
  29. ) DUPLICADOS INNER JOIN '+@AÑOQUIN +' PRD ON DUPLICADOS.RFC = PRD.RFCH
  30. 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
  31. INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
  32. ORDER BY TODOS.RFCH
  33. 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(
  34. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  35. FROM '+@AÑOQUIN +' PRD
  36. WHERE IDDESNOM = ''11''
  37. GROUP BY NOMBRE
  38. HAVING COUNT (NOMBRE) >= 2
  39. ) DUPLICADOS INNER JOIN '+@AÑOQUIN +' PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  40. 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
  41. ) TODO
  42. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  43. ORDER BY TODO.NOMBRE
  44. SELECT * FROM #duplicados AS t1
  45. LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
  46. WHERE t2.nombre IS  NULL'
  47. EXEC sp_executesql @QUERY
  48. --set @QUERY3 = 'SELECT * FROM #duplicados AS t1 LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre) WHERE t2.nombre IS  NULL'
  49. --EXEC sp_executesql @QUERY3
  50.  
  51. COMMIT
  52.  
  53. END TRY
  54. BEGIN CATCH
  55.     ROLLBACK
  56.     PRINT error_message()
  57. END CATCH