के लिए रिटर्निंग मान नहीं डाउनलोड एक डाउनलोड डाउनलोड समय, डाउनलोड-टाइम आईडी और बूनो आईडी शामिल है। दोषों में गलती कोड, डाउनलोड-टाइम आईडी, स्थिति और प्रकार शामिल हैं। एक डाउनलोड में कई दोष हो सकते हैं, और डाउनलोड-टाइम आईडी पर शामिल हो सकते हैं।पोस्टग्रेज़ में बाएं-बाहरी शामिल नल
गलती-कोड के एक सेट को देखते हुए, परिणामों में प्रत्येक गलती-कोड को एक समान गलती के साथ होना चाहिए। यदि डाउनलोड में कोई गलती-कोड नहीं मिला है, तो गलती-कोड शून्य की गलती-गिनती के साथ वापस किया जाना चाहिए।
समस्या को बाहरी जॉइन की आवश्यकता होती है, लेकिन पोस्टग्रेज़ पर अपेक्षित काम के रूप में यह नहीं देखा है क्योंकि यह बाएं तालिका से नल के साथ सेट को वापस नहीं लग रहा है।
क्वेरी, नीचे है कुछ विवरण संक्षिप्तता के लिए बाहर छोड़ दिया साथ:
SELECT f.faultcode, f.downloadtimeid, d.downloadtime, count(*) as faultcount
FROM download_time d
LEFT OUTER JOIN fs_fault f ON f.downloadtimeid = d.id
AND f.faultcode IN (1000,1100)
AND f.statusid IN(2, 4)
WHERE (d.downloadtime BETWEEN '04/11/2011' AND '05/01/2012')
AND d.bunoid = 166501
GROUP BY d.bunoid, f.downloadtimeid, d.downloadtime, f.faultcode
अगले दिन, मैं जवाब दिखाने के लिए संपादित किया है। सभी उत्तरों करीब थे और सहायता के विभिन्न तत्व थे। हालांकि, जेसी का जवाब निकटतम था। यहाँ अंतिम एसक्यूएल है, कहां खंड के रूप में केवल परिवर्तन होने बयान में त्रुटि-कोड लेने:
SELECT f.faultcode, f.downloadtimeid, d.downloadtime, count(*) as faultcount
FROM download_time d
RIGHT OUTER JOIN fs_fault f ON f.downloadtimeid = d.id
AND f.statusid IN(2, 4)
AND d.downloadtime BETWEEN '04/11/2011' AND '05/01/2012'
AND d.bunoid = 166501
WHERE f.faultcode IN (1000,1100)
GROUP BY d.bunoid, f.downloadtimeid, d.downloadtime, f.faultcode
धन्यवाद, आपकी सहायता के लिए सभी! इस साइट को प्यार करो!
क्या आपने अपना डेटा विश्लेषण किया है? मुझे संदेह है कि यह PostgreSQL के भीतर समस्या है ... क्या आप [SQL Fiddle] (http://sqlfiddle.com/) में तालिका संरचना और नमूना डेटा प्रदान कर सकते हैं? – vyegorov
'download_time d बाएं बाहरी जॉइन fs_fault f f.downloadtimeid = d.id' पर बाएं तालिका के रूप में' download_time' है, 'fs_fault' नहीं। जॉइन हालत में कुछ भी नहीं है जिसमें शामिल होने के लिए कौन सी टेबल छोड़ी गई है या सही है। – JayC