Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/02/2012, 10:59
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Restar dos campos de dos tablas que no están relacionadas

Cita:
pero me sale error
#1248 - Every derived table must have its own alias
Lo que necesitas es un traductor de inglés. Te sugiero usar el de Google.
Eso significa:
Cita:
"Cada tabla derivada debe tener su propio alias."
Y lo que implica es que estás haciendo una subconsulta en el FROM sin ponerle el correspondiente alias... Es una regla básica del SQL.
Código MySQL:
Ver original
  1.     SUM(TOTAL)
  2.     (SELECT productos.id, SUM( cantidad * entrada_salida ) TOTAL
  3.     FROM inventario INNER JOIN productos ON inventario.productos_id = productos.id
  4.     WHERE 1
  5.     GROUP BY productos_id
  6.     UNION ALL
  7.     SELECT productos.id, SUM((proformas_has_productos.cantidad)*(-1)) AS TOTAL
  8.     FROM proformas_has_productos
  9.     INNER JOIN productos ON proformas_has_productos.productos_id = productos.id
  10.     WHERE 1
  11.     GROUP BY productos_id)
¿Ves el cierre del paréntesis final? ¿Dónde está el alias?
En ninguna parte.

Código MySQL:
Ver original
  1.     SUM(TOTAL)
  2.     (SELECT productos.id, SUM( cantidad * entrada_salida ) TOTAL
  3.     FROM inventario INNER JOIN productos ON inventario.productos_id = productos.id
  4.     WHERE 1
  5.     GROUP BY productos_id
  6.     UNION ALL
  7.     SELECT productos.id, SUM((proformas_has_productos.cantidad)*(-1)) TOTAL
  8.     FROM proformas_has_productos
  9.     INNER JOIN productos ON proformas_has_productos.productos_id = productos.id
  10.     WHERE 1
  11.     GROUP BY productos_id) T1
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 13/02/2012 a las 11:05