अज्ञात स्तंभ "TableB.Date" 'होने खंड' में

वोट
0

जब मैं एक mysql डेटाबेस क्वेरी के रूप में इस प्रकार मैं शीर्षक में ऊपर के रूप में कोई त्रुटि मिलती है। पता नहीं क्यों, समस्या बयान से समूह के साथ है, लेकिन मैं कई रूप की कोशिश की है और कुछ भी नहीं काम करने के लिए लगता है।

SELECT TableA.Name, DATE_FORMAT(TableB.Date, '%b %d %Y') AS Date, COUNT(TableB.TableBID) 
  FROM TableA
  INNER JOIN TableB
  ON TableA.TableAID = TableB.TableAID
  WHERE TableA.Name = john
  GROUP BY DATE(TableB.Date)
  HAVING DATE_FORMAT(TableB.Date, '%b %d %Y') >= Apr 12 2014
  ORDER BY MAX(TableB.TableAID) ASC;
17/04/2014 को 13:51
उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

होने उर्फ ​​देख सकते हैं, इसलिए

HAVING Date >= "Apr 12 2014"
17/04/2014 को 13:57
का स्रोत उपयोगकर्ता

वोट
1

इससे पहले कि आप तुलना करना चाहिए group byएक का उपयोग कर whereहालत। और, आप की तारीख और नहीं तारों पर तुलना करना चाहिए:

SELECT a.Name, DATE_FORMAT(b.Date, '%b %d %Y') AS "Date", COUNT(b.TableBID) 
FROM TableA a INNER JOIN
     TableB b
     ON a.TableAID = b.TableAID
WHERE a.Name = 'john' AND
      b.date >= '2014-04-12'
GROUP BY DATE(b.Date)
ORDER BY MAX(b.TableAID) ASC;

कारण है कि आप में छानने क्या करना चाहते हैं whereकि यह डाटा एकत्रीकरण एल्गोरिथ्म को खिलाया का आकार कम कर देता है। कारण है कि आप तार के बजाय तारीखों का उपयोग करना चाहते है, क्योंकि आप "मार्च" नहीं करना चाहता "अप्रैल" के बाद किया जाना है। ध्यान दें कि मैं भी तारीख एक भी बोली के लिए निरंतर पर सीमांकक बदल दिया है।

17/04/2014 को 14:02
का स्रोत उपयोगकर्ता

वोट
1

क्यों नहीं डाल TableB.Date >= '2014-04-12'कहां खंड में?

HAVING क्लॉज़ क्वेरी का हिस्सा द्वारा समूह के उत्पादन में फिल्टर - और अपने प्रश्न में नामित स्तंभों में से एक संदर्भ होना चाहिए होने - जबकि कहां खंड द्वारा समूह के लिए इनपुट फिल्टर। चूंकि आप चयनित TableB.Date AS "Date", आप HAVING क्लॉज़ में दिनांक का उल्लेख करने की आवश्यकता होगी। लेकिन जब से तुम एक स्ट्रिंग में दिनांक चालू करने के लिए DATE_FORMAT का उपयोग किया है आप एक और तारीख के साथ उसकी तुलना और परिणाम आप उम्मीद कर रहे हैं नहीं मिल सकता।

इसके अलावा DATE से MySQL में एक कीवर्ड है आप अपने आप को स्तंभ नाम के रूप में कुछ और का उपयोग करके कुछ परेशानी को बचाने के। तुम हमेशा बैकटिक में लपेट यकीन है कि MySQL जानता है कि यह एक स्तंभ नाम के लिए एक संदर्भ है बनाने के लिए कर सकते हैं।

17/04/2014 को 14:03
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more