Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
SQL inventario

Hola, ojala me puedan ayudar.

Tengo 2 tablas... bodega e inventarios. La consulta debe devolverme la cantidad de items distintos (en cada bodega) que cumpla con la condicion de que la sumatoria de ingresos, sea mayor que la sumatoria de egresos.

La cosa va algo asi, pero no he podido afinarlo...

Código SQL [-]
SELECT distinct B.ID, b.NOMBRE,
(SELECT COUNT(I.ID) FROM INVENTARIO I WHERE (SELECT COALESCE(SUM(CANTIDAD),0)
FROM inventario WHERE EMPRESA = 'MAT' AND TIPO = 'I' AND BODEGA = B.ID AND ID=I.ID) >
(SELECT COALESCE(SUM(CANTIDAD),0) FROM inventario WHERE EMPRESA = 'MAT'
AND TIPO = 'E' AND BODEGA = B.ID AND ID=I.ID))
FROM  bodega b WHERE B.EMPRESA = 'MAT'
GROUP BY B.ID, B.NOMBRE

Espero que a alguien se le ocurra algo que me funcione....

saludos, y mil gracias
Responder Con Cita
  #2  
Antiguo 06-12-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
debes ajustar a tu consulta pues no conozco tus tablas

Código SQL [-]
select B.ID,B.NOMBRE,count(I.ID) as cantidad 
from BODEGAS B
LEFT JOIN INVENTARIOS I ON (B.IDPRODUCTO=I.IDE) 
group by B.ID,B.NOMBRE
having sum(iif(TIPO ='I',cantidad,0))<sum(iif(TIPO ='E',cantidad,0));

ten muy presente el Having que es el que evalua que los ingresos sean inferiores a los egresos

Suerte
Responder Con Cita
  #3  
Antiguo 06-12-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Gracias, estoy trabajando con ello...

otra pregunta: necesito agregar mas condiciones para ambas tablas que es el campo empresa, en que parte tengo que agregarlo??

Muchas gracias por tu tiempo

Saludos
Responder Con Cita
  #4  
Antiguo 06-12-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
Las demas condiciones las agregas en el Where, antes de iniciar el group by
Suerte
Responder Con Cita
  #5  
Antiguo 08-12-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Ok, gracias, ahora se me presento otro poblema, si es que no existe ningún Items que cumpla con la condición, no me aparece ninguna bodega... me gustaría que en ese caso, me arrojara que en la bodega "X" existe 0 items que cumla con esa condicion.

Trate utilizando coalesce, pero no me resulto

Como puedo solucionar eso??

Código SQL [-]
select B.ID,B.NOMBRE,COALESCE(count(DISTINCT I.ID),0) as cantidad
from BODEGA B
LEFT JOIN INVENTARIO I ON (B.ID=I.bodega)
where I.empresa = 'MAT' AND B.EMPRESA = 'MAT'
group by B.ID,B.NOMBRE
having COALESCE(sum(iif(TIPO ='I',cantidad,0)),0)>COALESCE(sum(iif(TIPO ='E',cantidad,0)),0)

Saludos
Responder Con Cita
  #6  
Antiguo 10-12-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Hola, voy a simplificar la pregunta, utilizo este codigo para hacer una consulta...

Código SQL [-]
select count(distinct i.id) as items from inventario i
where empresa = 'MAT' AND I.BODEGA = '1'
HAVING sum(iif(I.TIPO ='I',I.cantidad,0)) > sum(iif(I.TIPO ='E' or I.TIPO = 'T' ,I.cantidad,0))

La tabla inventario tiene estos registros.

ID Cantidad Tipo Bodega Empresa
1 5 I 1 MAT
2 2 I 1 MAT
1 5 E 1 MAT

La hacer mi consulta, solo debiera mostrarme que un solo items distinto en la bodega 1 (el ID 2), pero me arroja el resultado del count que existen 2 items distintos que cumplen con la condicion.

Espero que ahora quede mas claro, y me puedan ayudar a dar solucion a mi problema.

Muchas gracias.... Saludos
Responder Con Cita
  #7  
Antiguo 12-12-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Hola, alguien me puede ayudar con esto... no he podido solucionarlo, y nececito resolverlo antes posible....


Cualquier idea me sirve...

Gracias
Responder Con Cita
  #8  
Antiguo 12-12-2008
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Cometnario A La Consulta

Creo que l amejor forma es partir el probalema en varios pedazos ,me explico
1. crea vistas que totalicen las entradas y salidas + /o menos como esto:
select bodega,fecha, codigo,sum(qty) where el codigo transsaccion = entradas
2. crea vistas que totalicen salidas + /o menos como esto:
select bodega,fecha, codigo,sum(qty) where el codigo transsaccion = salidas
3 o una vista que totalice las entradas sy salidas ejempllo
select compnaia, bodega,codigo, sum(entradas) sum(salidas) group by
bodega,compania,codigo

**********************************
SELECT cono,recurso,tipomov,
CASE
when tipomov = 'E' THEN QTY
ELSE
0
END ENTRADAS ,

CASE
when tipomov = 'S' THEN QTY
ELSE
0
END SALIDAS
FROM inmov m
********************************
YA USANDO LAS VISTA DE PRONTO ES MAS FACIL
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Facturación e Inventario silver07 Conexión con bases de datos 49 22-10-2015 20:45:33
Aplicacion + Inventario mjjj Varios 8 03-11-2008 16:58:54
Costo de Inventario NickName SQL 4 09-10-2006 07:30:31
Inventario de Hardware vichovi API de Windows 3 03-01-2005 16:35:10
Controlar inventario? AbcXxx Varios 4 12-06-2004 01:54:13


La franja horaria es GMT +2. Ahora son las 17:20:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi