2011-10-16 2 views
5

aşağıdaki sorguyu kullanırken, ben hatayı plus-minus kullanılır"# 1054 - Bilinmeyen sütun" sorgusu ile diğer ad kullanılırken hata?

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

olsun. Aksi takdirde, sorgu düzgün çalışır. Nasıl kullanacağımı bilmediğim Takma Adlarla ilgili bir şey var sanırım. Lütfen yol göster.

Teşekkürler.

Sorgu:

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

SMS'leri ve kullanıcı tablolarını tanımlayabilir misiniz? –

cevap

9

Sen sorgu seçme parçası içinde bir sütunun diğer adı kullanamazsınız.

Bu şekilde her yapabileceğini:

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 

Problems with Column Aliases: Şunları sütuna başvurmak için GROUP BY, ORDER BY veya HAVING maddelerinde takma kullanabilirsiniz

+0

STILL tam olarak aynı hatayı! (Pst. Nt .: Sorgunuzu kopyaladığım gibi yapıştırdım) – BufferStack

+0

Üzgünüz @Tajar, iç sorgusunda "artı-eksi" yi sildiğimi unuttum. Şimdi dene. – DavidEG

+0

Teşekkürler! Çok Faydalı ... zaman ve tekrar gerektiren yeni bir şey öğrendim! – BufferStack

İlgili konular