2011-10-16 91 views
5

Durante el uso de la siguiente consulta, me sale el error"# 1054 - Error de columna desconocida" cuando se usa alias con-en la consulta?

#1054 - Unknown column 'plus' in 'field list' 

cuando se utiliza plus-minus. De lo contrario, la consulta funciona bien. Supongo que hay algo relacionado con Alias ​​que no sé cómo usar. Por favor guía!

Gracias.

Consulta:

SELECT users.name, 
count(*) as total, 
SUM(sms.views)+ SUM(sms.downloads)+ (SELECT count(*) FROM `smsfb` WHERE (`feedback`=1 OR `feedback`=100) AND userid=users.uniqueID) AS plus, 
SUM(sms.delreq)+(SELECT count(*) FROM `smsfb` WHERE (`feedback`=5 OR `feedback`=6) AND userid=users.uniqueID) AS minus, 
plus-minus 
FROM sms,users 
WHERE sms.deviceID=users.uniqueID AND sms.catid!=23 AND sms.catid!=44 AND sms.catid!=45 
AND date>="2011-10-03" AND date<"2011-10-09" 
GROUP BY users.uniqueID HAVING total>10 ORDER BY total DESC LIMIT 0, 10 
+1

¿PUEDES DESCRIBIR los sms y las tablas de usuarios, por favor? –

Respuesta

9

Usted no puede usar el alias de una columna dentro de la parte SELECT de la consulta.

Usted puede hacerlo de esta manera:

SELECT name 
    , total 
    , plus 
    , minus 
    , plus - minus 
FROM (
    SELECT users.name, 
    count(*) as total, 
    SUM(sms.views)+ SUM(sms.downloads)+ (SELECT count(*) FROM `smsfb` WHERE  (`feedback`=1 OR  `feedback`=100) AND userid=users.uniqueID) AS plus, 
    SUM(sms.delreq)+(SELECT count(*) FROM `smsfb` WHERE (`feedback`=5 OR `feedback`=6)  AND  userid=users.uniqueID) AS minus 
    FROM sms,users 
    WHERE sms.deviceID=users.uniqueID 
     AND sms.catid!=23 AND sms.catid!=44 
     AND sms.catid!=45 
     AND date>="2011-10-03" AND date<"2011-10-09" 
    GROUP BY users.uniqueID HAVING total>10 ORDER BY total DESC 
    LIMIT 0, 10 
) plusAndMinus 

De Problems with Column Aliases:

Puede utilizar el alias en GROUP BY, ORDER BY o HAVING para referirse a la columna

+0

STILL exactamente el mismo error! (Pl. Nt .: Copié y pegué su consulta tal como está) – BufferStack

+0

Lo siento @Tajar, olvidé borrar el 'más-menos' en la consulta interna. Pruebalo ahora. – DavidEG

+0

¡Gracias! Mucho útil ... ¡aprendí algo nuevo que se requiere una y otra vez! – BufferStack

Cuestiones relacionadas