के साथ जुड़ें मेरे पास दो टेबल हैं। indRailType
में आईडी प्रकार के साथ जोड़े गए नामों की एक सूची है जो मैं रेल प्रकार को इंगित करने के लिए अन्य तालिकाओं में उपयोग करता हूं। WO_BreakerRail
में एक दिनांक कॉलम और एक रेल कोड कॉलम है जो indRailType
और कुछ अन्य डेटा में एक ही कोड से मेल खाता है। प्रत्येक तारीख के लिए प्रत्येक रेल प्रकार पर किसी भी गतिविधि के लिए WO_BreakerRail
में एक पंक्ति है। तो मेरे पास 3/19/2010
के लिए 3 पंक्तियां हो सकती हैं, प्रत्येक पंक्ति एक अलग रेल कोड इंगित करती है, और क्या हुआ।बाएं आउटर एक WHERE क्लॉज
जब मैं निम्नलिखित LEFT OUTER JOIN
का उपयोग करता हूं, तो मुझे पंक्तियों में नल के साथ सभी प्रकार के रेल के साथ एक टेबल मिलता है, जहां 1 9वीं पर कुछ भी नहीं हुआ था। अब, यह केवल काम कर रहा है क्योंकि मेरे पास केवल WO_BreakerRail
तालिका में 1 9वीं की एक तिथि है। जब मैं अलग-अलग तिथियों के साथ और पंक्तियां जोड़ता हूं, तो चीजें खराब हो जाएंगी।
यह मेरा एसक्यूएल बयान है, जो अभी मुझे बिल्कुल गये परिणाम देता है:
SELECT WO_BreakerRail.ID, indRailType.RailType, WO_BreakerRail.CreatedPieces,
WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged,
WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop
FROM indRailType
LEFT OUTER JOIN WO_BreakerRail
ON indRailType.RailCode = WO_BreakerRail.RailCode
अब, जब मैं एक WHERE WO_BreakerRail.Date = @Date
खंड मैं JOIN
जो कुछ भी नहीं हुआ की सभी पंक्तियों खो में जोड़ें। मुझे वह नहीं चाहिए। पढ़ने से, यह एक पूर्ण OUTER JOIN
जैसा लगता है जो मैं चाहता हूं, लेकिन SQL सर्वर कॉम्पैक्ट संस्करण FULL OUTER JOIN
एस का समर्थन नहीं करता है। क्या इसके आसपास कोई रास्ता है, या क्या मैं पूरी तरह से कुछ और ढूंढ रहा हूं?
@Date के "समय" हिस्से में कारक को न भूलें। यदि मध्यरात्रि और आधी रात के बीच मूल्य भिन्न हो सकते हैं, तो आपको क्लॉज के बीच कुछ रूपों का उपयोग करना होगा। –
यह उत्तर पूरी तरह से काम किया, धन्यवाद। फिलिप: उस सूचक के लिए धन्यवाद, हालांकि मैं इस परियोजना में पहले इस समस्या में भाग गया था, जो मुझे थोड़ी देर के लिए फेंक दिया, लेकिन मैंने इसे अपने सी # कोड में फिक्स कर दिया, सभी समय के हिस्सों को हटा दिया, हर रात आधी रात को डिफॉल्ट कर दिया। – Wesley
@ वेस्ले, समय निकालने के लिए "फर्श" डेटाटाइम डेटा प्रकारों के लिए सबसे अच्छा है, इसलिए समय 00: 00: 00.000 है और मध्यरात्रि नहीं है। –