SQL - Consulta de inventarios por Bodega

 
Vista:

Consulta de inventarios por Bodega

Publicado por Aquilino (3 intervenciones) el 12/12/2012 23:16:55
Buenas tardes a todos

Mi problema es el siguiente necesito hacer un reporte donde pueda ver la referencia del item, descripcion, marca, grupo,inventario1,inventario2

esta informacion la obtengo basicamente de dos tablas una llamada oitm y otra oitw
en la segunda tengo los inventarios por cada bodega de un item determinado y los demas campos los obtengo de la tabla oitm

mi problema es que cuando lo hago por ejmplo si del item1 tengo 2 en el inventario1 y 5 en el inventario2 me sale dos veces los datos uno por cada almacen en donde tenga inventario.

1
2
3
referencia   descripcion                                        marca   grupo                           invetario1   inventario2
00374	H2O+ SPA HAND CREAM 6OZ	H2O     HEALTH & BEAUTY	NULL   NULL
00374	H2O+ SPA HAND CREAM 6OZ	H2O     HEALTH & BEAUTY	NULL	48

COMO PODRAN OBSERVAR ESTA REFERENCIA TIENE INVENTARIO EN EL ALMACEN 2 MAS NO EN EL UNO PERO AUN ASI ME SALE DOS VECES LO QUE QUISIERA ES SABER SI EXISTE ALGUNA MANERA QUE SALGA EN UNA SOLA LINEA.
POR EJEMPLO

1
2
referencia   descripcion                                        marca   grupo                           invetario1   inventario2
00374	H2O+ SPA HAND CREAM 6OZ	H2O     HEALTH & BEAUTY	NULL   48


ESPERO ME PUEDAN ORIENTAR.

SALUDOS
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta de inventarios por Bodega

Publicado por xve (284 intervenciones) el 13/12/2012 12:28:36
Hola Aquilino, no comentas que motor de base de datos estas utilizando, ni tu consulta, pero por ejemplo puedes agrupar por referencia... GROUP BY referencia

También puede indicar que no te muestra los valores null... WHERE grupo IS NOT NULL

Espero que te sirva... coméntanos, ok?
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

Consulta de inventarios por Bodega

Publicado por aquilino (3 intervenciones) el 13/12/2012 15:33:48
buenos dias XVE este es el query que comente arriba es en sql server 2008, como mencione anteriormente la inoformacion si la obtengo pero no se como hacer que sea en una sola linea los inventarios siempre me salen dos lineas si el producto tiene inventario en las dos bodegas o almacenes. y si no tiene en la primera pero si en la segunda igual me sale la que no tiene nada.

voy a probar con el is not null a ver como me va.

saludos


select distinct
T0.ItemCode as Codigo,
T0.ItemName as Descripcion,
T0.CodeBars as 'Codigo de Barras',
T2.FirmName as Marca,
T3.itmsgrpnam as Grupo,
T0.iscommited as 'Pedido de Clientes',
T0.onorder 'Pedido a Proveedor',
case when (T1.whscode = '1') and (T1.OnHand <> 0 )then T1.onhand end as 'Almacen 1',
case when (T1.whscode = '2') and (T1.onhand <> 0 )then T1.onhand end as 'Almacen 2'
From OITM T0
INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OMRC T2 ON T0.FirmCode = T2.FirmCode
INNER JOIN OITB T3 ON T0.ItmsGrpCod = T3.ItmsGrpCod
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta de inventarios por Bodega

Publicado por xve (284 intervenciones) el 13/12/2012 16:52:35
Ok, perfecto, creo que debería de funcionar-te... has probado el GROUP BY o el WHERE que te comentaba en el anterior mensaje?
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

Consulta de inventarios por Bodega

Publicado por aquilino (3 intervenciones) el 18/12/2012 22:58:49
con este query pude solucionar mi problema
lo dejo por si alguien lo necesita

select resultado.Codigo,
Descripcion,Codigo_de_Barras as 'Cod de Barras',
Marca,Grupo,Pedido_de_Clientes as 'Ped. Clientes',
Pedido_a_Proveedor as 'Ped. Prov',
sum(Almacen_1)as 'Bodega 1',sum(Almacen_2)as 'Bodega 2'
from (select distinct
T0.ItemCode as Codigo,
T0.ItemName as Descripcion,
T0.CodeBars as Codigo_de_Barras,
T2.FirmName as Marca,
T3.itmsgrpnam as Grupo,
T0.iscommited as Pedido_de_Clientes,
T0.onorder Pedido_a_Proveedor,
T1.onhand as Almacen_1,0 AS Almacen_2
From OITM T0
INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OMRC T2 ON T0.FirmCode = T2.FirmCode
INNER JOIN OITB T3 ON T0.ItmsGrpCod = T3.ItmsGrpCod
where (T0.onhand != 0) AND (T1.whscode = '1')
group by T0.ItemCode,T0.ItemName,T0.CodeBars,T2.FirmName,T3.itmsgrpnam,T0.iscommited,
T0.onorder,T1.onhand,T1.whscode
union
/******este select extrae la informacion de la bodega numero 1*****/
select distinct
T0.ItemCode,
T0.ItemName,
T0.CodeBars,
T2.FirmName,
T3.itmsgrpnam,
T0.iscommited,
T0.onorder,
0,T1.onhand

From OITM T0
INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode
INNER JOIN OMRC T2 ON T0.FirmCode = T2.FirmCode
INNER JOIN OITB T3 ON T0.ItmsGrpCod = T3.ItmsGrpCod
where T0.onhand != 0 AND (T1.whscode = '2')
group by T0.ItemCode,T0.ItemName,T0.CodeBars,T2.FirmName,T3.itmsgrpnam,T0.iscommited,
T0.onorder,T1.onhand,T1.whscode) as resultado
group by resultado.Codigo,Descripcion,Codigo_de_Barras,Marca,Grupo,Pedido_de_Clientes,
Pedido_a_Proveedor
order by marca


Saludos.....
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