कल्पना कीजिए मैं SqlServer में निम्नलिखित 3 टेबल है:एक बाएँ में सबसे हाल का रिकॉर्ड में शामिल होने
Customer (CustomerID, FirstName, LastName)
Address (AddressID, CustomerID, Line1, City, State)
Product (ProductID, CustomerID, Description)
एक ग्राहक कई वितरण पते और एकाधिक उत्पादों हो सकता है।
मैं क्या करना चाहता हूं कि प्रत्येक राज्य के लिए ग्राहकों की संख्या सूचीबद्ध करें जहां राज्य सबसे हालिया पता रिकॉर्ड द्वारा निर्धारित किया जाता है। जैसे "प्रत्येक राज्य में कितने ग्राहकों को एक उत्पाद प्राप्त हुआ?"। इसलिए मुझे ग्राहक के लिए किसी भी पिछले पता रिकॉर्ड में दिलचस्पी नहीं है, केवल सबसे हालिया (पता आईडी द्वारा निर्धारित)। के रूप में एक ग्राहक से अधिक पते ग्राहक केवल सबसे हाल ही में पता रिकॉर्ड के राज्य में की जाएगी जो हो सकता है
SELECT a.State, count(c.CustomerID)
FROM Product p
INNER JOIN Customer c ON c.CustomerID = p.CustomerID
LEFT JOIN Address a ON a.CustomerID = c.CustomerID
WHERE p.ProductID = 101
GROUP BY a.State
हालांकि,:
State | Number of Customers
--------------------------
CA | 32
GA | 12
TX | 0
OH | 18
मैं सामान्य रूप से की तरह कुछ करना होगा?
पीएस उपरोक्त उन जोड़ों को आसानी से समझाने के लिए एक उदाहरण परिदृश्य है जो मैं प्राप्त करने की कोशिश कर रहा हूं और वास्तविक प्रणाली डिज़ाइन को प्रतिबिंबित नहीं करता हूं।
बस जो मैं खोज रहा था, बहुत धन्यवाद। –
बढ़िया! अब, मैं इस बारे में क्यों नहीं सोचा था! –
यह साफ था। आप के लिए यश। –