![]() |
Consultar el mismo campo varios valores
Hola a todos, quiero pedirles su ayuda, tengo dos tablas, una padre y su hija (pedidos y detalle de pedidos), necesito con SQL consultar cuáles pedidos tienen la condición de estar requiriendo dos o más productos de códigos específicos. Me explico mejor con un ejemplo:
Cita:
Al hacerlo así no me devuelve filas, cuando cambio AND por OR en la pregunta del producto, me devuelve todas las filas, pero necesito es que el resultado de esa consulta sea: 101 y 103 Alguna idea ... Gracias |
No estoy muy seguro de entender la pregunta.
Lo que tu quieres es encontrar el número de pedido que contiene TODOS los artículos que pasas en la condición? Es decir... Dame aquel Nº de pedido en el que se están pidiendo unas gafas y tambien se está pidiendo una camiseta. ¿Es esa la idea? ¿Qué tal algo como esto?
No estoy 100% seguro de que la manera de enlazar la tabla consigo misma sea correcta, que alguien me corrija si no es así =) |
SELECT para encontrar registros con diferentes valores en el mismo campo
Hola, para empezar, no se si el título realmente describa mi inquietud, pero bueno ...
Tengo una tabla que contiene el detalle de los pedidos con una estructura Consecutivo, NroPedido, IdProducto, Cantidad, ... un Pedido puede tener diferentes productos: Consecutivo NroPedido IdProducto Cantidad 1 101 TORNILLO 1 2 101 TUERCA 2 3 101 BUJE 1 4 102 TUERCA 1 5 102 BOMBILLO 1 6 103 TORNILLO 5 7 103 BUJE 3 8 103 ARANDELA 5 Necesito encontrar los pedidos que contengan p.ej: TORNILLO Y TUERCA, es decir el 101 Cómo se construye ese SELECT ...? Gracias ! |
Hola,
No soy el más indicado, pero, ¿algo así es lo que estás buscando?
|
Hola dec, no me serviría porque necesito preguntar por el Producto, es decir no conozco cuales Pedidos tienen los 2 productos (de acuerdo al ejemplo).
Había intentado lo siguiente:
pero evidentemente el resultado son los Pedidos que tienen el Producto TORNILLO 'o' el Producto TUERCA, según el ejemplo serían el 101, 102 y 103, y lo que necesito son los Pedidos que tienen AMBOS Productos, el 101. Ahora, si en lugar de OR utilizo AND, siempre será un resultado vacio ya que ningún Producto podría llamarse al mismo tiempo TORNILLO Y TUERCA. |
Menos indicado yo!!! :D:D:D:D
Código:
SELECT * FROM NombreTabla |
Se me ocurre esto, pero no sé si sirva:
// Saludos |
Hola gustavosv.
Otra opción:
Saludos :) |
Usando Having
Creo que esto funcionaría :
También se me ocurrió esto otro, que es un poco más rebuscado, pero en ciertas situaciones puede darnos algo de flexibilidad adicional, siempre y cuando nuestro motor de bases de datos pueda realizar consultas CTE (common-table-expresion) (por lo menos Firebird, Sql Server y db2 pueden):
|
LISTO !!! :):)
Muchas gracias a todos por sus respuestas y mis respetos. Me funcionaron perfecto las ideas de Roman y Ecfisa, la una va más rápido que la otra pero se obtiene el mismo resultado correcto, la primera de Orodriguezca la probé y no me funcionó ya que el resultado es como si usara mi opción de OR, bueno en últimas para eso es IN, y la segunda no trabajó en MySQL. De nuevo gracias por su ayuda ! GustavoSV |
Hola gustavosv.
Habías publicado dos hilos con el mismo contenido. Para evitar dispersar resultados en las búsquedas, combiné ambos en este. Si ves que tu hilo inicial no ha tenido respuestas no crees otro tema, publica un nuevo mensaje en el original y pasará a encabezar la lista nuevamente. Saludos :) |
Listo, tienes razón, gracias !
Solo que el anterior hilo lo había puesto hace más de 2 años y la verdad no me acordaba de él. :o |
Cita:
Saludos :) |
La franja horaria es GMT +2. Ahora son las 15:30:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi