Página 1 de 1

[RESUELTO]Datos duplicados despues de calculos

Publicado: Jue Dic 04, 2008 12:00 am
por jamunix
Hola a todos...

Tengo un pequeño inconveniente con el ejemplo de la base de datos que adjunto...
tengo 2 tablas relacionadas por el codigo, quiero hacer 2 calculos, uno en donde se muestre el total multiplicando la cantidad de productos vendidos por el precio (PVP) de dicho producto, el otro calculo solo muestro la cantidad de productos que quedan restandole a la cantidad de productos existentes menos la cantidad de productos vendidos.
Estos calculos los estoy haciendo mediante una consulta:

Código: Seleccionar todo

SELECT "codigo", "producto", "cant_existencia", "cant_vendida", "pvp", "cant_existencia" - "cant_vendida" AS "Cant_Restante", "pvp" * "cant_existencia" AS "Total" FROM "inventario", "venta"
y el problema que me da es que al ejecutar dicha consulta, la cantidad de productos me las cuadriplica, es decir en ves de salir una sola fila con la informacion del producto "Hojas Cartas", me salen cuatro filas.
Estoy seguro que el error debe ser algo minusculo pero como no se manejar mucho el Base, ya se me acabaron las ideas de que prodria ser.

Espero puedan ayudarme en esto, asi podre aplicar esto a el proyecto que debo terminar...
Saludos.

Re: Datos duplicados despues de calculos

Publicado: Jue Dic 04, 2008 9:32 am
por marceloo
Te falta la clausual "where"
SELECT "inventario"."codigo", "inventario"."producto", "inventario"."cant_existencia", "venta"."cant_vendida", "inventario"."pvp", "cant_existencia" - "cant_vendida" AS "Cant_Restante", "pvp" * "cant_existencia" AS "Total" FROM "venta" AS "venta", "inventario" AS "inventario"
WHERE "venta"."codigo" = "inventario"."codigo"
Esto es porque en el diseño de la consulta tambien debes relacionar los campos "código" como lo has hecho en Herramientas-Relaciones. Es decir lo puedes hacer manualmente incluyendo el where ó arrastrando un campo sobre el otro para establecer la relación.

Re: Datos duplicados despues de calculos

Publicado: Vie Dic 12, 2008 8:25 pm
por jamunix
Hola Amigo...
Gracias por la respuesta, lo que me dices es lo correcto, el mismo dia que coloque este port aqui, en una clase en la universidad dio "Consultas SQL" con SQLserver y explico que por cada relacion entre tablas y por cada calculo entre esas tablas debe esta esa linea de codigo:

Código: Seleccionar todo

Where tabla1.campo1 = tabla2.campo2
en mi caso:

Código: Seleccionar todo

WHERE "venta"."codigo" = "inventario"."codigo"
esa misma noche lo probe y funciono perfecto....
Gracias de todos modos, porque si ese profesor no hubiese dado clases igual hubiese tenido la solucion aqui...
saludos.