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

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de SQL Server en Foros del Web. Buenas noches foreros, les agradecería que colaboraran con una consulta que no he podido realizar sucede que estoy tratando de seleccionar ciertos grupos que no ...
  #1 (permalink)  
Antiguo 28/02/2011, 21:53
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Ayuda con consulta

Buenas noches foreros, les agradecería que colaboraran con una consulta que no he podido realizar

sucede que estoy tratando de seleccionar ciertos grupos que no tengan una cuenta definida y no lo hace, o no lo se hacer, coloco un ejemplo

CABECERA GRUPO CUENTA

03 111 7777
03 111 8888
03 111 9999

04 112 5555
04 112 7777
04 112 8888

lo que necesito es que me traiga la cabezera y el grupo en donde NO esta la cuenta 5555, pero sucede que no es solo 5555, sino que puede ser 5555 ó 5556 ó 5522, en fin pueden ser muchas cuentas pero todas inician con 55, mi consulta es esta

select * from hijo
where cuenta not like cuenta '55%'

pero así me trae la cabecera 04 y el grupo 112, para las cuentas 7777 y 8888
y yo necesito que solo me traiga la cabecera 03 y el grupo 111, puesto que en sus registros no esta la cuenta 5555.

Espero haberme explicado.

De ante mano, gracias
  #2 (permalink)  
Antiguo 01/03/2011, 03:15
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda con consulta

alguna sugerencia?
  #3 (permalink)  
Antiguo 01/03/2011, 04:29
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Ayuda con consulta

Algo así:

Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE cabecera NOT IN (
  3. SELECT cabecera
  4. FROM tabla
  5. WHERE CUENTA like '55%')
  #4 (permalink)  
Antiguo 01/03/2011, 08:18
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda con consulta

Lo voy a validar y te comento
  #5 (permalink)  
Antiguo 09/03/2011, 21:29
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda con consulta

Muchas gracias Heimish2000, me sirvio la consulta
  #6 (permalink)  
Antiguo 10/03/2011, 14:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con consulta

En lo personal, no me gusta el NOT IN, te sugiero lo cambies por un NOT EXISTS
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 11/03/2011, 10:22
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda con consulta

Cita:
Iniciado por iislas Ver Mensaje
En lo personal, no me gusta el NOT IN, te sugiero lo cambies por un NOT EXISTS
Es mucho mas optimo??
  #8 (permalink)  
Antiguo 11/03/2011, 10:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con consulta

Bueno, he realizado algunas pruebas y si, es mucho, pero mucho mas eficiente
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 14/03/2011, 20:57
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Ayuda con consulta

Hola iislas, al cambiar el NOT IN por el NOT EXISTS, se me presenta un error el cual dice


Mens. 156, Nivel 15, Estado 1, Línea 4
Sintaxis incorrecta cerca de la palabra clave 'EXISTS'.

que debo modificar de la consulta para que acepte el NOT EXISTS y obtenga el mismo resultado??
  #10 (permalink)  
Antiguo 14/03/2011, 23:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Ayuda con consulta

No dices como lo estas haciendo, pero deberia ser algo asi:

Código SQL:
Ver original
  1. SELECT * FROM tabla T1
  2. WHERE cabecera NOT EXISTS (SELECT cabecera
  3. FROM tabla T2
  4. WHERE T2.CABECERACUENTA = T1.CABECERA AND
  5. T2.CABECERA LIKE '55%')
__________________
MCTS Isaias Islas

Etiquetas: Ninguno
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 20:59.