Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Restar entre dos Tabla en SQL2000 (https://www.clubdelphi.com/foros/showthread.php?t=82105)

kurono 26-01-2013 20:20:03

Restar entre dos Tabla en SQL2000
 
hola amigos les cuento que tengo dos tablas Facturacion y Proveedores en la cual realizo una resta simple la cual es la existencia de los productos que viene siendo

Existencia = cantdad compra -cantidad venta

e hecho una consulta donde me realiza esa operacion todo bien siempre y cuando solo exista un registro de un producto en la tabla facturacion pero cuando existen dos registro del producto en esa misma tabla no me muestra los resultado esperado

por ejemplo si tengo el producto Refresco con dos registro uno con una venta de 5 y otro con una venta de 4 el resultado de esas venta viene siendo 9 y restado con la cantdad de compra de ese producto que es 100 deberia mostrarme 91 de existencia pero lo que me muestra es
191 aqui esta la consulta de SQL que tengo


Código SQL [-]
SELECT COMPRASPROVEEDORES.IDPRODUCTO,COMPRASPROVEEDORES.PRODUCTO,
  COMPRASPROVEEDORES.CANTIDAD,SUM(COMPRASPROVEEDORES.CANTIDAD - FACTURACION.CANTIDAD) AS EXISTENCIA,
  COMPRASPROVEEDORES.PRECIOCOSTO
  FROM COMPRASPROVEEDORES INNER JOIN FACTURACION ON COMPRASPROVEEDORES.IDPRODUCTO = FACTURACION.IDPRODUCTO
  
  GROUP BY COMPRASPROVEEDORES.IDPRODUCTO,COMPRASPROVEEDORES.PRODUCTO,
  COMPRASPROVEEDORES.CANTIDAD,COMPRASPROVEEDORES.PRECIOCOSTO

Caral 26-01-2013 20:48:08

Hola
Seguro no entiendo pero donde estas restando, no existe un update solo un select.
Saludos

kurono 27-01-2013 00:54:50

la resta la hago en esta linea no se si lo estaria haciendo mal ya que todas las operaciones aritmetica siempre la e hecho de esta forma no veo porque usar update
SUM(COMPRASPROVEEDORES.CANTIDAD - FACTURACION.CANTIDAD) AS EXISTENCIA

kurono 27-01-2013 02:24:36

amigo me autorespondo e solucionado mi problema simplemente modificando esta linea

Código SQL [-]
SUM(COMPRASPROVEEDORES.CANTIDAD - FACTURACION.CANTIDAD) AS EXISTENCIA

y dejandola de esta manera

Código SQL [-]
 SUM(DISTINCT COMPRASPROVEEDORES.CANTIDAD) - SUM(DISTINCT FACTURACION.CANTIDAD) AS EXISTENCIA

Caral 27-01-2013 02:51:14

Hola
Por eso dije que seguro no entendia el problema, lo que querías es mostrar una resta, no restar en la tabla.
El titulo dice que quieres restar de dos tablas por eso pensé en el update.
Me alegro que lo pudieras solucionar.
Saludos

kurono 27-01-2013 22:39:31

perdona por el titulo la proxima vez le presentare un titulo mas entendible

aposi 28-01-2013 20:32:26

Hola, creo que de esta manera si tienes 2 ventas de 5 no te restara 10 a las compras
Código SQL [-]
 SUM(DISTINCT COMPRASPROVEEDORES.CANTIDAD) - SUM(DISTINCT FACTURACION.CANTIDAD) AS EXISTENCIA


De esta manera te sumaria todas las compras y las restaria a todas las ventas
Código SQL [-]
SUM(COMPRASPROVEEDORES.CANTIDAD) - SUM(FACTURACION.CANTIDAD) AS EXISTENCIA


La franja horaria es GMT +2. Ahora son las 16:31:54.

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