Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Comparar registros de dos consultas.

Estas en el tema de Comparar registros de dos consultas. en el foro de SQL Server en Foros del Web. >Hola a todos. Estoy generando reportes para sacar duplicados. Bien mi problema es que ya tengo un reporte los duplicados por RFC. Y lo que ...
  #1 (permalink)  
Antiguo 21/01/2014, 11:27
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Comparar registros de dos consultas.

>Hola a todos.

Estoy generando reportes para sacar duplicados.
Bien mi problema es que ya tengo un reporte los duplicados por RFC.
Y lo que busco es buscar los duplicados por nombre pero que no esten en mi reporte de duplicados de RFC

las consultas que tengo son

Esta saca duplicados de RFC.
Código SQL:
Ver original
  1. SELECT * FROM
  2. (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(
  3. SELECT RFCH RFC, NOMBRE ,  COUNT (RFCH) CANTIDAD,IDDESNOM
  4. FROM PRD1401 PRD
  5. WHERE IDDESNOM = '11'
  6. GROUP BY RFCH,NOMBRE,IDDESNOM
  7. HAVING COUNT (RFCH) >= 2
  8. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.RFC = PRD.RFCH
  9. 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
  10. INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
  11. ORDER BY TODOS.RFCH

y para sacar duplicados de nombre es
Código SQL:
Ver original
  1. SELECT * 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(
  2. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  3. FROM PRD1320 PRD
  4. WHERE IDDESNOM = '11'
  5. GROUP BY NOMBRE
  6. HAVING COUNT (NOMBRE) >= 2
  7. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  8. 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
  9. ) TODO
  10. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  11. ORDER BY TODO.NOMBRE

intente usar un except pero no supe un not exists y tampoco..
que puedo hacer?
  #2 (permalink)  
Antiguo 21/01/2014, 11:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparar registros de dos consultas.

podria resolverse de la siguiente manera

Código SQL:
Ver original
  1. SELECT * INTO #rfc FROM
  2. (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(
  3. SELECT RFCH RFC, NOMBRE ,  COUNT (RFCH) CANTIDAD,IDDESNOM
  4. FROM PRD1401 PRD
  5. WHERE IDDESNOM = '11'
  6. GROUP BY RFCH,NOMBRE,IDDESNOM
  7. HAVING COUNT (RFCH) >= 2
  8. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.RFC = PRD.RFCH
  9. 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
  10. INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
  11. ORDER BY TODOS.RFCH
  12.  
  13. 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(
  14. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  15. FROM PRD1320 PRD
  16. WHERE IDDESNOM = '11'
  17. GROUP BY NOMBRE
  18. HAVING COUNT (NOMBRE) >= 2
  19. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  20. 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
  21. ) TODO
  22. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  23. ORDER BY TODO.NOMBRE
  24.  
  25. SELECT * FROM #duplicados AS t1
  26. LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
  27. WHERE t2.nombre IS NOT NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 21/01/2014, 11:46
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

aun me sigue trallendo todos los repetidos. Tanto de RFC como por nombre
  #4 (permalink)  
Antiguo 21/01/2014, 11:50
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

Ya quedo jeje solo cambie el IS NOT NULL por IS NULL
  #5 (permalink)  
Antiguo 21/01/2014, 11:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparar registros de dos consultas.

Código SQL:
Ver original
  1. SELECT * FROM #duplicados AS t1
  2. LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
  3. WHERE t1.nombre IS NOT NULL

un pequeño ejemplo de los datos no estaria de mas :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 21/01/2014, 11:55
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

Otra cosa señor libras hay alguna manera de qeu enseguida
deque haga la consulta se elimine la tabla. Porqeu este reporte se genera cada quincena.
  #7 (permalink)  
Antiguo 21/01/2014, 11:59
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

Así es la consulta a quedado asi
Código SQL:
Ver original
  1. SELECT * INTO #rfc FROM
  2. (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(
  3. SELECT RFCH RFC, NOMBRE ,  COUNT (RFCH) CANTIDAD,IDDESNOM
  4. FROM PRD1401 PRD
  5. WHERE IDDESNOM = '11'
  6. GROUP BY RFCH,NOMBRE,IDDESNOM
  7. HAVING COUNT (RFCH) >= 2
  8. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.RFC = PRD.RFCH
  9. 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
  10. INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
  11. ORDER BY TODOS.RFCH
  12.  
  13. 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(
  14. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  15. FROM PRD1401 PRD
  16. WHERE IDDESNOM = '11'
  17. GROUP BY NOMBRE
  18. HAVING COUNT (NOMBRE) >= 2
  19. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  20. 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
  21. ) TODO
  22. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  23. ORDER BY TODO.NOMBRE
  24.  
  25. SELECT * FROM #duplicados AS t1
  26. LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
  27. WHERE t2.nombre IS  NULL
  #8 (permalink)  
Antiguo 21/01/2014, 12:18
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparar registros de dos consultas.

una son tablas temporales las cuales se eliminan despues de que se cierra la conexion con sql server, pero en su defecto puedes usar
Código SQL:
Ver original
  1. DROP TABLE #duplicados
  2. DROP TABLE #rfc
  3.  
  4. ó
  5.  
  6. IF OBJECT_ID('tempdb..#duplicados') IS NOT NULL DROP TABLE #duplicados
  7. IF OBJECT_ID('tempdb..#rfc') IS NOT NULL DROP TABLE #rfc
  8.  
  9. SELECT * INTO #rfc FROM
  10. (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(
  11. SELECT RFCH RFC, NOMBRE ,  COUNT (RFCH) CANTIDAD,IDDESNOM
  12. FROM PRD1401 PRD
  13. WHERE IDDESNOM = '11'
  14. GROUP BY RFCH,NOMBRE,IDDESNOM
  15. HAVING COUNT (RFCH) >= 2
  16. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.RFC = PRD.RFCH
  17. 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
  18. INNER JOIN tipnomina NOM ON TODOS.IDTIPNOM = NOM.id_nomina
  19. ORDER BY TODOS.RFCH
  20.  
  21. 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(
  22. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  23. FROM PRD1401 PRD
  24. WHERE IDDESNOM = '11'
  25. GROUP BY NOMBRE
  26. HAVING COUNT (NOMBRE) >= 2
  27. ) DUPLICADOS INNER JOIN PRD1401 PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  28. 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
  29. ) TODO
  30. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  31. ORDER BY TODO.NOMBRE
  32.  
  33. SELECT * FROM #duplicados AS t1
  34. LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre)
  35. WHERE t2.nombre IS  NULL
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 21/01/2014, 12:28
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

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 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. EXEC sp_executesql @QUERY
  34.  
  35. 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(
  36. SELECT NOMBRE ,  COUNT (NOMBRE) CANTIDAD
  37. FROM '+@AÑOQUIN +' PRD
  38. WHERE IDDESNOM = ''11''
  39. GROUP BY NOMBRE
  40. HAVING COUNT (NOMBRE) >= 2
  41. ) DUPLICADOS INNER JOIN '+@AÑOQUIN +' PRD ON DUPLICADOS.NOMBRE  = PRD.NOMBRE  
  42. 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
  43. ) TODO
  44. INNER JOIN tipnomina NOM ON TODO.IDTIPNOM   = NOM.id_nomina
  45. ORDER BY TODO.NOMBRE'
  46. EXEC sp_executesql @QUERY2
  47. SET @QUERY3 = 'SELECT * FROM #duplicados AS t1 LEFT JOIN #rfc AS t2 ON (t1.nombre=t2.nombre) WHERE t2.nombre IS  NULL'
  48. EXEC sp_executesql @QUERY3
  49.  
  50. COMMIT
  51.  
  52. END TRY
  53. BEGIN CATCH
  54.     ROLLBACK
  55.     PRINT error_message()
  56. 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?
  #10 (permalink)  
Antiguo 21/01/2014, 12:35
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
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
  #11 (permalink)  
Antiguo 21/01/2014, 12:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparar registros de dos consultas.

se debe a como lo mencione que son tablas temporales que solo "viven" dentro de la sesion que las manda llamar, cuando usas querys dinamicos las tablas temporales se ejecutan en la sesion que manda llamar al query dinamico y se eliminan una vez que ejecutas algo despues de esto, para solucionar esto puedes hacer lo que hiciste metiendo todo en un solo query o usando ## para las tablas temporales, te recomiendo leer un poco sobre tablas temporales y su uso-tiempo de vida en sql server :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 21/01/2014, 12:38
Avatar de aid_val  
Fecha de Ingreso: mayo-2013
Ubicación: Guanajuato
Mensajes: 302
Antigüedad: 11 años
Puntos: 5
Respuesta: Comparar registros de dos consultas.

Muchas gracias de nuevo señor Libras.. Es genial.

Otra ves me saco de apurillos!

Etiquetas: group, registros, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:10.