Consulta SQL

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
shakka
Forista Mayor
Forista Mayor
Mensajes: 753
Registrado: Dom Sep 18, 2005 7:00 am
Contactar:

Consulta SQL

Mensaje por shakka » Jue Feb 11, 2010 1:45 am

Mejor describo aqui:

Tengo 2 tablas

T1. contiene una lista de facturas
Estructura:
|codigo|fecha|cliente|

T2, contiene el detalle de la factura
Estructura:
|detalle_id|factura_id(clave_foranea)|codigo_producto|desc_producto|

Lo que tengo que obtener es un listado de la tabla de detalle, donde aquellos registros pertenezcan a un numero de factura(no hay problema), pero que el codigo de producto sea por ejemplo:

1
1 o 6
1 o 3

lo cual no me sirve con un simple OR

ya que no seria valido si extraigo datos donde el codigo sea solo 6 o 3

Esto seria valido

|detalle_id|factura_id|codigo_producto|
1 256 1
2 256 6

|detalle_id|factura_id|codigo_producto|
1 256 1
2 256 3


|detalle_id|factura_id|codigo_producto|
1 256 1

Esto seria INvalido

|detalle_id|factura_id|codigo_producto|
1 256 6

|detalle_id|factura_id|codigo_producto|
1 256 3

Alguna sugerencia, Gracias
blog http://blog.mbrenes.com
Avatar de Usuario
Teh
Forista Medio
Forista Medio
Mensajes: 310
Registrado: Dom Jun 03, 2007 7:00 am
Ubicación: Tijuana, Méjico

Re: Consulta SQL

Mensaje por Teh » Jue Feb 11, 2010 6:17 am

Como que creo haber entendido tu problema.

¿Conoces las querys anidadas?

¿O el JOIN y UNION?

Quisiera ayudarte pero... sería hacerte el trabajo.
[ last.fm ] [ blog ] [ Desktop ] [ Band ]
Avatar de Usuario
shakka
Forista Mayor
Forista Mayor
Mensajes: 753
Registrado: Dom Sep 18, 2005 7:00 am
Contactar:

Re: Consulta SQL

Mensaje por shakka » Jue Feb 11, 2010 6:26 pm

Entiendo, si he usado los JOIN de hecho he omitido la consulta real porque es muy grande y no requiero ponerla aca, solo el punto de mi duda. No he usado las clusulas UNION, al igual que un JOIN no se de que forma puede solucionar este problema.

De hecho uso un JOIN para para traerme registros de ambas tablas y hacer las inclusiones y exclusiones necesarias.

Lo que ocupo es que por cada # de factura en detalle, este solo me traiga si se cumplen todas las condiciones sobre el MISMO CAMPO, es decir:

que por cada factura:

aquella que tenga lineas donde codigo sea
1
1 o 6
1 o 3

No importa el cliente, lo que importa es muestre detalles de la factura si esta tiene la sgte. combinacion:

si el codigo del producto en detalle es 1 o 1 con 3 o 1 con 6.

Lo que voy a hacer si no queda otra seria hacer un select de la factura que tenga al menos un producto codigo 1, si devuelve algun registro significa que aplica ya que cualquier combinacion implica codigo 1, ya despues solo mostraria las lineas de codigo 1,3,6.

Lo que queria saber es si se podia hacer en una misma consulta esta operacion.

Gracias
blog http://blog.mbrenes.com
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Consulta SQL

Mensaje por akodo » Vie Feb 12, 2010 12:02 am

Puedes probar con algo así, a ver si funciona:

Código: Seleccionar todo

select * from ..... where codigo_producto = 1 or codigo_producto in all (1,6) or codigo_producto in all (1,3)
Seguro que explota por algún lado, y no sé si se podrá hacer o no (con el significado que se desprende de la sentencia sql), pero ahora mismo no se me ocurre otra cosa.

De todas formas, el problema está en que la solución de la consulta depende de 2 filas distintas de la tabla.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje