SQL - Consultas SQL

 
Vista:

Consultas SQL

Publicado por Rosa (21 intervenciones) el 11/02/2020 12:06:18
Buenas, tengo la siguientes tablas con los siguientes campos:
-Almacenes:
*ID
*Nombre
*Ubicacion
-Productos:
*ID
*Nombre
*Precio unitario
-Productos-Almacenes:
*ID_producto
*ID_almacen1
*ID_almacen2
*Stock
-Ventas:
*ID_venta
*ID_producto
*ID_almacen
*Fecha_de_venta(int usando solo el año)

He hecho una consulta que me devuelva los almacenes que tienen un stock de menos de 5:

1
2
3
4
5
6
select PA.ID_almacen1, A.Nombre as NombreAlmacen, PA.ID_producto, P.Nombre, P.Precio_unitario, PA.ID_almacen2, Alm.Nombre as NomAlmacen
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes A on PA.ID_almacen1 = A.ID
inner join Almacenes Alm on PA.ID_almacen2 = A.ID
where PA.ID_almacen1 = @idAlmacen

pero me devuelve filas vacias

Al intentar otra consulta seleccionando un almacen, para que me de el numero de productos que tiene por debajo de 5 y el numero de unidades que tiene ese producto:

1
2
3
4
5
select PA.ID_almacen1,PA.ID_producto, PA.Stock, P.Nombre, PA.ID_almacen2, Alm.Nombre as NomAlmacen
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes Alm on PA.ID_almacen2 = A.ID
where PA.ID_almacen1 = @idAlmacen1 and PA.Stock < 5 LIMIT 0, 25

tambien me devuelve filas vacias. Alguien podria ayudarme? uso phpmyadmin. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 137
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Luis Horacio (38 intervenciones) el 11/02/2020 19:54:46
Buenas tardes,

Esta instrucción: inner join Almacenes Alm on PA.ID_almacen2 = A.ID esta mala porque debes de hacer alusión a la tabla Alm así:
inner join Almacenes Alm on PA.ID_almacen2 = Alm.ID, la consulta te debe quedar así:

1
2
3
4
5
6
select PA.ID_almacen1, A.Nombre as NombreAlmacen, PA.ID_producto, P.Nombre, P.Precio_unitario, PA.ID_almacen2, Alm.Nombre as NomAlmacen
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes A on PA.ID_almacen1 = A.ID
inner join Almacenes Alm on PA.ID_almacen2 = Alm.ID
where PA.ID_almacen1 = @idAlmacen

debes revisar para ambas consultas el valor del campo ID_almacen2, que no este en blanco o que el valor que tiene exista en la tabla almacen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 11/02/2020 21:54:06
Le agradezco mucho su respuesta, pero introduciendo su modificación me siguen saliendo filas vacias, he revisado el valor de almacen2 y tiene valores. Le adjunto el script por si desea comprobarlo. Gracias por su tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 137
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Luis Horacio (38 intervenciones) el 11/02/2020 22:11:15
Buenas tardes,

Antes de la consulta debes de colocar esta línea:

1
set @idAlmacen1 = 4;

El número 4 es un almacén con el que probe y me mostró resultados.

Lo ejecute así:

1
2
3
4
5
6
7
8
set @idAlmacen1 = 4;
 
select PA.ID_almacen1, A.Nombre as NombreAlmacen, PA.ID_producto, P.Nombre, P.Precio_unitario, PA.ID_almacen2, Alm.Nombre as NomAlmacen
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes A on PA.ID_almacen1 = A.ID
inner join Almacenes Alm on PA.ID_almacen2 = Alm.ID
where PA.ID_almacen1 = @idAlmacen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 11/02/2020 23:42:36
Buenas tardes, funciona perfectamente, pero como podria añadirle el numero de stock que tienen esos almacenes? gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 137
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Luis Horacio (38 intervenciones) el 12/02/2020 17:25:21
Buenos días,

1
2
3
4
5
6
7
8
set @idAlmacen1 = 4;
 
select PA.ID_almacen1, A.Nombre as NombreAlmacen, PA.ID_producto, P.Nombre, P.Precio_unitario, PA.ID_almacen2, Alm.Nombre as NomAlmacen,alm.stock
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes A on PA.ID_almacen1 = A.ID
inner join Almacenes Alm on PA.ID_almacen2 = Alm.ID
where PA.ID_almacen1 = @idAlmacen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 12/02/2020 17:35:58
Buenos dias! al introducir esa consulta me sale el siguiente error:
#1054 - Unknown column 'alm.Stock' in 'field list'

Le mande un correo privado con el enunciado. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 137
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Luis Horacio (38 intervenciones) el 12/02/2020 18:27:32
Buen día,

Debe quedar así

1
2
3
4
5
6
7
8
set @idAlmacen1 = 4;
 
select PA.ID_almacen1, A.Nombre as NombreAlmacen, PA.ID_producto, P.Nombre, P.Precio_unitario, PA.ID_almacen2, Alm.Nombre as NomAlmacen, PA.stock
from `Productos-Almacenes` PA
inner join Productos P on PA.ID_producto = P.ID
inner join Almacenes A on PA.ID_almacen1 = A.ID
inner join Almacenes Alm on PA.ID_almacen2 = Alm.ID
where PA.ID_almacen1 = @idAlmacen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 12/02/2020 18:34:03
Disculpe que insista Luis Horacio, podria mirar el mensaje privado que le envie? gracias y perdone las molestias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 12/02/2020 21:14:23
Señor Luis, creo que no me explique correctamente en lo que necesitaba en mis querys, le copio los enunciados haber si asi me explico mejor, gracias:

Consulta 1: Mostrar el listado de almacenes que tienen productos en peligro de rotura de stock (menos de 5 unidades), indicando cuántos de estos productos están en peligro (ejemplo: ALMACEN_8: 5 PRODUCTOS).

Consulta 2: Seleccionando uno de esos almacenes, se mostrarán la relación de productos en peligro de rotura y el número de unidades (ejemplo: PRODUCTO_2: 3 UNIDADES, PRODUCTO_8: 0 UNIDADES).

Gracias anticipadas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 137
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Luis Horacio (38 intervenciones) el 12/02/2020 22:11:53
Buenas tardes,

tienes por casualidad teamviewer para ver?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 13/02/2020 00:25:10
Mire los privados por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha disminuido su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

Consultas SQL

Publicado por Rosa (7 intervenciones) el 13/02/2020 14:48:57
Señor Luis, si pudiera mirar el privado que le envie se lo agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar