Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Duda ejercicio 8 Guia de SQL- Gestion de Datos
Autor Mensaje
dieee91 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 14
Agradecimientos dados: 4
Agradecimientos: 0 en 0 posts
Registro en: Aug 2013
Mensaje: #1
Duda ejercicio 8 Guia de SQL- Gestion de Datos Ejercicios Gestión de Datos
Les hago una consulta sobre este punto el 8 , no logro sacar lo que piden , el ejercicio dice : "Mostrar para el o los artículos que tengan stock en todos los depósitos, nombre del artículo, stock del depósito que más stock tiene"

Yo hasta donde llegue es :
select P.prod_detalle, MAX(S.stoc_cantidad) as MAXIMO
from facultad.dbo.Producto P , facultad.dbo.STOCK S
where P.prod_codigo = S.stoc_producto AND
S.stoc_cantidad > 0
group by P.prod_detalle, MAXIMO


Adjunto una imagen del modelo de datos


Agradezco cualquier ayuda, gracias!


Archivo(s) adjuntos Imagen(es)
   
02-06-2016 23:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.353
Agradecimientos dados: 85
Agradecimientos: 241 en 125 posts
Registro en: Oct 2011
Mensaje: #2
RE: Duda ejercicio 8 Guia de SQL- Gestion de Datos
Lo "complejo" acá es entender como hacer para saber que productos tienen stock en TODOS los depositos.
De qué manera se puede saber eso?, Si vos tenes 3 depositos, para un artículo en la tabla stock, tiene que figurar 3 veces (uno por cada depósito).

Entonces uno podría hacer la siguiente query para traer todos los productos que tienen stock en todos los depositos.


SELECT STOC_PRODUCTO FROM STOCK
GROUP BY STOC_PRODUCTO
HAVING COUNT(STOC_PRODUCTO) = (SELECT COUNT(DEPO_CODIGO) FROM DEPOSITO)


Con esa query te traes todos los productos que tienen Stock en los depositos.
Ahora, si queres traerte cual es la cantidad máxima que tienen hay que añadir:



SELECT STOC_PRODUCTO, MAX(Stoc_Cantidad) FROM STOCK
GROUP BY STOC_PRODUCTO
HAVING COUNT(STOC_PRODUCTO) = (SELECT COUNT(DEPO_CODIGO) FROM DEPOSITO)



Ahora para finalizar, nos falta traer el Detalle del producto. Para ello hay que ir a buscar la información a la Tabla Producto y empleamos un JOIN .



SELECT P.PROD_DETALLE, MAX(Stoc_Cantidad) FROM STOCK S
INNER JOIN PRODUCTO P ON S.STOC_PRODUCTO = P.PROD_CODIGO
GROUP BY P.PROD_DETALLE
HAVING COUNT(STOC_PRODUCTO) = (SELECT COUNT(DEPO_CODIGO) FROM DEPOSITO)



Mas allá de si funciona la query o no, fijate si se entendió la metodología/lógica para llegar a lo pedido.

[Imagen: jQJfyBGh9SOmZ.png]
(Este mensaje fue modificado por última vez en: 03-06-2016 10:41 por Martin..)
03-06-2016 10:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dieee91 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 14
Agradecimientos dados: 4
Agradecimientos: 0 en 0 posts
Registro en: Aug 2013
Mensaje: #3
RE: Duda ejercicio 8 Guia de SQL- Gestion de Datos
sisis se re entendio! mil gracias Martin !
06-06-2016 14:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
asheegarcia Sin conexión
Empleado del buffet
lleva tu huella, llevala al sol
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1
Agradecimientos dados: 2
Agradecimientos: 0 en 0 posts
Registro en: Sep 2014
Mensaje: #4
RE: Duda ejercicio 8 Guia de SQL- Gestion de Datos
Hola,

Fijate que yo lo hice así:




select P.prod_codigo,P.prod_detalle , MAX(S.stoc_cantidad) as CantidadMaxima
from Producto P, STOCK S
where P.prod_codigo = S.stoc_producto
and S.stoc_cantidad > 0
group by S.stoc_producto, P.prod_detalle, P.prod_codigo
having (count(*)) = (select count(*) from DEPOSITO)




Saludos!
20-06-2016 20:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.