Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2013, 15:43
Avatar de JuJoGuAl
JuJoGuAl
 
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Pregunta Seleccionar datos del resultado de una consulta

Buenas tardes amigos (GMT -4.30) tengo un problemilla y se los presento,

estoy jalando datos de un sistema administrativo con un punto de ventas y necesito hacer unos reportes de ventas por producto y estoy haciendo las consultas para tal.

ahora bien como necesito jalar las ventas de unos productos, por ejemplo, CAFE (CANT y TOTAL) LECHE (CANT y TOTAL) mi idea es jalar todos esos datos en un orden algo asi CANTCAFE,TOTALCAFE,CANTLECHE,TOTALLECHE...

ahora para sacar eso de las ventas necesito hacer un JOIN de 2 tablas para poder filtrar bien lo que quiero, asi que primero consulto todos los datos que sean FACTURAS y que esten en el rango de tiempo que necesito:

Código SQL:
Ver original
  1. SELECT
  2. *
  3. FROM ventas_detalles JOIN ventas ON VENTAS_DETALLES.CORRELATIVO_PRINCIPAL=ventas.CORRELATIVO
  4. WHERE
  5. (VENTAS.FECHA_EMISION BETWEEN '2012.12.01' AND '2012.12.31')
  6. AND (VENTAS.tipo_documento <> 'ODD')

esa consulta me trae todas las ventas del mes de DIC 2012, ahora de esas ventas yo quiero sacar los TE que se vendieron (CANTIDAD y el TOTAL) y lo intente hacer asi:
Código SQL:
Ver original
  1. SELECT
  2. (SUM(IIF(VENTAS.tipo_documento = 'FAC',ventas_detalles.CANTIDAD,0))-SUM(IIF(VENTAS.tipo_documento = 'DEV',ventas_detalles.CANTIDAD,0))) AS cantidad
  3. FROM
  4. (SELECT
  5. *
  6. FROM ventas_detalles JOIN ventas ON VENTAS_DETALLES.CORRELATIVO_PRINCIPAL=ventas.CORRELATIVO
  7. WHERE
  8. (VENTAS.FECHA_EMISION BETWEEN '2012.12.01' AND '2012.12.31')
  9. AND (VENTAS.tipo_documento <> 'ODD')) productos

y obtengo este error:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
COLUMN The column DEPOSITO_CODIGO was specified multiple times for derived table PRODUCTOS.
(0,312 sec)

Basicamente la pregunta es, como obtengo datos avanzados de una consulta previa, es decir hacer una consulta de una consulta, nose si se me entiende....