Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Alias en Where

Estas en el tema de Alias en Where en el foro de Mysql en Foros del Web. Hola tengo una tabla de stock con los siguientes datos: codigoArticulo color talla stock reposicion precio Para controlar de que productos tenemos stock he pensado ...
  #1 (permalink)  
Antiguo 13/01/2012, 11:19
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 81
Antigüedad: 20 años, 2 meses
Puntos: 0
Alias en Where

Hola tengo una tabla de stock con los siguientes datos:

codigoArticulo
color
talla
stock
reposicion
precio

Para controlar de que productos tenemos stock he pensado en hacer una vista con;

codigoArticulo
totalUnidades SUM(stock + reposicion)

con la condicion de que totalUnidades sea >0

Esto es:

Cita:
CREATE VIEW `stockProductos_view` AS select `codigoArticulo` ,SUM(stock + reposicion) AS `totalUnidades ` from stockProducto where 'totalUnidades ' > 0 Group by codigoArticulo;
Pero me da el error de totalUnidades no es un campo de la tabla.

¿Es posible poner un alias en el Where?
__________________
VitoVi.com
Responsable Programación Web
  #2 (permalink)  
Antiguo 13/01/2012, 11:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Alias en Where

Hola vitogq:

Lo que estás tratando de hacer no es posible en el where, en primer lugar por que se trata de un campo agrupado, por lo tanto, este existe sólo hasta después de la ejecución de la consulta, sin embargo hay otras maneras de hacerlo:

en primer lugar podrías hacerlo en la sección HAVING, esta se utiliza en conjunto con el GROUP BY para filtrar información.

Código:
select `codigoArticulo`, SUM(stock + reposicion) AS `totalUnidades ` 
from stockProducto Group by codigoArticulo 
HAVING SUM(stock + reposicion) > 0 
Otra forma para filtrar campos calculados cuando no se trata de agrupaciones es con una subconsulta:

Código:
select * from (
select `codigoArticulo`, SUM(stock + reposicion) AS `totalUnidades ` 
from stockProducto Group by codigoArticulo
) T
where totalUnidades > 0 
Haz la prueba y nos comentas.

Saludos
Leo.

Etiquetas: alias, sum
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:44.