Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2011, 08:41
FIDOKELELE
 
Fecha de Ingreso: enero-2009
Ubicación: talca
Mensajes: 23
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Problema alias en select operacion aritmetica

Hola amigos

Entiendo que ALIAS solo se puede usar en las clausulas GROUP BY, ORDER BY, o HAVING

http://dev.mysql.com/doc/refman/5.0/es/problems-with-alias.html

Pero estoy tratando de obtener la suma de los count
mediante la suma de sus alias correspondientes
con el ejercicio siguiente (CRECIMIENTO/(CRECIMIENTO+PLAZA))

El uso de los alias es por que no quiero repetir el mismo ejercicio
con la consulta (de manera que el codigo sea ordenado)

Si existe alguna otra forma para realizar la consulta por favor ayudenme


grasias
Código PHP:
SELECT 
            VENDEDOR
.idpersona,
            
VENDEDOR.nombrepersona,
            (
                
SELECT 
                    COUNT
DETALLEFOLIOS.iddetallefolio) AS SUMA
                FROM
                    FOLIOS
                INNER JOIN DETALLEFOLIOS ON 
(FOLIOS.idfolio DETALLEFOLIOS.fkidfolio)
                
WHERE
                    FOLIOS
.fkestado IS NULL AND 
                    
MONTHDETALLEFOLIOS.fechaalta)=".$_GET['mes']." AND
                    
YEAR(DETALLEFOLIOS.fechaalta) =".$_GET['anio']." AND 
                    
DETALLEFOLIOS.fechabaja IS NULL     AND                  
                    
FOLIOS.plazacrecimiento='CRECIMIENTO'AND 
                    
FOLIOS.fkvendedor=VENDEDOR.idpersona
            
            
) AS CRECIMIENTO,
            (
                
SELECT 
                    COUNT
DETALLEFOLIOS.iddetallefolio) AS SUMA
                FROM
                    FOLIOS
                INNER JOIN DETALLEFOLIOS ON 
(FOLIOS.idfolio DETALLEFOLIOS.fkidfolio)
                
WHERE
                    FOLIOS
.fkestado IS NULL AND
                    
MONTHDETALLEFOLIOS.fechaalta)=".$_GET['mes']." AND
                    
YEAR(DETALLEFOLIOS.fechaalta) =".$_GET['anio']." AND 
                    
DETALLEFOLIOS.fechabaja IS NULL AND                
                    
FOLIOS.plazacrecimiento='PLAZA'AND 
                    
FOLIOS.fkvendedor=VENDEDOR.idpersona
            
            
) AS PLAZA,

            (
                
SELECT 
                    COUNT
DETALLEFOLIOS.iddetallefolio) AS SUMA
                FROM
                    FOLIOS
                INNER JOIN DETALLEFOLIOS ON 
(FOLIOS.idfolio DETALLEFOLIOS.fkidfolio)
                
WHERE
                    FOLIOS
.fkestado IS NULL AND 
                    
MONTHDETALLEFOLIOS.fechaalta)=".$_GET['mes']." AND
                    
YEAR(DETALLEFOLIOS.fechaalta) =".$_GET['anio']." AND 
                    
DETALLEFOLIOS.fechabaja IS NOT NULL AND
                      
FOLIOS.plazacrecimiento='CRECIMIENTO'AND 
                    
FOLIOS.fkvendedor=VENDEDOR.idpersona
            
            
) AS BAJASCRECIMIENTO,
            (
                
SELECT 
                    COUNT
DETALLEFOLIOS.iddetallefolio) AS SUMA
                FROM
                    FOLIOS
                INNER JOIN DETALLEFOLIOS ON 
(FOLIOS.idfolio DETALLEFOLIOS.fkidfolio)
                
WHERE
                    FOLIOS
.fkestado IS NULL AND 
                      
MONTHDETALLEFOLIOS.fechaalta)=".$_GET['mes']." AND
                    
YEAR(DETALLEFOLIOS.fechaalta) =".$_GET['anio']." AND 
                    
DETALLEFOLIOS.fechabaja IS NOT NULL AND
                    
FOLIOS.plazacrecimiento='PLAZA'AND 
                    
FOLIOS.fkvendedor=VENDEDOR.idpersona
            
)PLAZABAJAS
            FROM
            FOLIOS
              INNER JOIN PERSONAS VENDEDOR ON 
(FOLIOS.fkvendedor VENDEDOR.idpersona)
              
            
            
GROUP BY VENDEDOR.nombrepersona
            HAVING 
(CRECIMIENTO PLAZA BAJASCRECIMIENTO PLAZABAJAS) > 
            ORDER BY VENDEDOR
.supervisor DESC,
            
VENDEDOR.nombrepersona ASC 

Última edición por FIDOKELELE; 23/09/2011 a las 09:03 Razón: titulo mas completo