subconsultas

Iniciado por m@o_614, 4 Abril 2014, 06:54 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos, tengo dos tablas en postgres que son la siguientes:

partidas_pedidos con sus campos: id_pedido(Pk),fecha_pedido,cantidad,producto(fK),cliente(Fk)

y info_clientes: nombre,apellido,id_cliente(Pk)

y me piden que haga una consulta:

Mostrar IDs de los clientes, sin repetirse, que en algun pedido hayan comprado mas de dos ejemplares de un mismo producto(cantidad) durante 1999

SELECT DISTINCT id_cliente
FROM info_clientes
WHERE id_cliente=(SELECT cliente FROM partidas_pedidos WHERE cantidad > 2 AND fecha_pedido LIKE '1999%');

pero me aparece un error que dice: subconsulta utilizada como expresion retorno mas de un registro y no entiendo por qué me sale esto

1mpuls0

#1
No estoy muy seguro, pero creo que sería así.

Código (sql) [Seleccionar]

SELECT A.cliente, A.total FROM (
SELECT cliente, SUM(cantidad) AS total FROM  partidas_pedidos WHERE fecha_pedido LIKE '1999%' GROUP BY cliente, producto) AS A WHERE A.total>2


Es que tengo duda con lo que mencionas de "sin repetirse" y si el cliente compró más de dos productos diferentes en ese periodo?
Por ejemplo si el cliente 1 compró 3 cantidades del producto 1 y ademas compro 5 cantidades del producto 7
En este caso si debería repetirse el id del cliente no? es lo más lógico.

De ser así la consulta que acabo de hacer no sirve para nada de eso xD

En ese caso te serviría esto.

Código (sql) [Seleccionar]

SELECT C.cliente, C.producto FROM (
SELECT cliente, SUM(cantidad), producto FROM  partidas_pedidos WHERE fecha_pedido LIKE '1999%' GROUP BY cliente, producto HAVING SUM(cantidad)>2) AS C
abc