Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2010
Franinho Franinho is offline
Registrado
 
Registrado: ago 2010
Posts: 5
Poder: 0
Franinho Va por buen camino
SELECT...WHERE IN (subconsulta con UNION)

Buenos días chicos,

Tengo un pequeño problema y necesito ayuda, os comento:

Necesito hacer un IN (subconsulta). Dicha subconsulta está compuesta por un UNION. Ejemplo:

SELECT ..
FROM ..
WHERE ... IN (SELECT ..FROM ..UNION...SELECT ..FROM ..)

Me peta todo el rato en el UNION. Ambos SELECT son idénticos. Por lo que deduzco que no soporta un UNION dentro de un IN.

Para solucionar esto hago dos IN con el mismo condicional y poniendo en cada uno de ellos el SELECT que unía con el UNION. De esta manera tengo lo mismo sin el UNION.

Pero que pasa? Que si alguno de los dos devuelve null...toda la query me devuelve null. Por lo que no me sirve.

Se os ocurre alguna solución para solucionar esto, sin tener que hacer un SP?

Un cordial saludo
Fran =)
Responder Con Cita
  #2  
Antiguo 09-08-2010
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Y no sera por la condición en el where? recuerda que generalmente algo con null regresa null, otra cosa seria evitar el null con isnull o coalescense, iif, o algo segun el motor de base de datos
Responder Con Cita
  #3  
Antiguo 09-08-2010
Franinho Franinho is offline
Registrado
 
Registrado: ago 2010
Posts: 5
Poder: 0
Franinho Va por buen camino
Como que por la condición del where?
Si lanzo la query con solo uno de los selects del union funciona perfectamente, a la que pongo union...falla y no me deja lanzar la query.

Entonces de ahí que deduzco que no puedo poner un UNION dentro de un IN.

Pero me sorprende ya que lo que pongo dentro del IN es solo una subconsulta bien construida.

Alguien sabe algo al respecto?

Saludines, :P
Responder Con Cita
  #4  
Antiguo 09-08-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Cita:
Empezado por Franinho Ver Mensaje
Como que por la condición del where?
Si lanzo la query con solo uno de los selects del union funciona perfectamente, a la que pongo union...falla y no me deja lanzar la query.

Entonces de ahí que deduzco que no puedo poner un UNION dentro de un IN.

Pero me sorprende ya que lo que pongo dentro del IN es solo una subconsulta bien construida.

Alguien sabe algo al respecto?

Saludines, :P
Pues no se podrá usar un UNION dentro del IN. Este tipo de cosas se van depurando en cada nueva versión de Firebird.

Deberías poder conseguir lo mismo con :

SELECT ..
FROM ..
WHERE ... IN (SELECT ..FROM .condicion1.)
UNION
SELECT ..
FROM ..
WHERE ... IN (SELECT ..FROM .condicion2.)
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Unificar UNION de 2 select ingel SQL 7 06-01-2010 21:43:46
union de select aladelta SQL 6 04-12-2006 10:17:47
Select de un Union All?? Luana Tablas planas 1 17-04-2006 16:24:07
Subconsulta en un ADOQuery Sr.Scorpion SQL 4 09-08-2005 11:08:34
Subconsulta DanielAlexander SQL 3 19-05-2003 21:59:56


La franja horaria es GMT +2. Ahora son las 18:16:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi