मुझे SQL क्वेरी में कुछ बुनियादी चालान जानकारी मिल रही है और उसी क्वेरी में ऑर्डर कुल और भुगतान टोटल ढूंढ रही है। यहां मेरे पास अब तक है:एकाधिक जॉइन का उपयोग करना। SUM() गलत मान का उत्पादन
SELECT
orders.billerID,
orders.invoiceDate,
orders.txnID,
orders.bName,
orders.bStreet1,
orders.bStreet2,
orders.bCity,
orders.bState,
orders.bZip,
orders.bCountry,
orders.sName,
orders.sStreet1,
orders.sStreet2,
orders.sCity,
orders.sState,
orders.sZip,
orders.sCountry,
orders.paymentType,
orders.invoiceNotes,
orders.pFee,
orders.shipping,
orders.tax,
orders.reasonCode,
orders.txnType,
orders.customerID,
customers.firstName AS firstName,
customers.lastName AS lastName,
customers.businessName AS businessName,
orderStatus.statusName AS orderStatus,
SUM((orderItems.itemPrice * orderItems.itemQuantity))
+ orders.shipping + orders.tax AS orderTotal,
SUM(payments.amount) AS totalPayments <-- this sum
FROM
orders
LEFT JOIN customers ON orders.customerID = customers.id
LEFT JOIN orderStatus ON orders.orderStatus = orderStatus.id
LEFT JOIN payments ON payments.orderID = orders.id <-- this join
LEFT JOIN orderItems ON orderItems.orderID = orders.id
कुल भुगतान कॉलम को छोड़कर सब कुछ आश्चर्यजनक रूप से क्वेरी से बाहर आता है। (10.00) के मूल्य के साथ डेटाबेस में एक भुगतान है। क्वेरी द्वारा प्रदान किया गया मान 20.00 (बिल्कुल डबल) है। मेरा सिद्धांत यह है कि, किसी कारण से, क्वेरी दो बार भुगतान राशि कॉलम "संक्षेप में" होती है। क्या कोई मेरे लिए इस पर कुछ प्रकाश डाल सकता है?
सहायता के लिए धन्यवाद!
हाय, और स्टैक ओवरव्लो में आपका स्वागत है। एसक्यूएल की तरह कोड को प्रारूपित करने के लिए, इसे चुनें और Ctrl + K दबाएं, यह ब्लॉक को 4 रिक्त स्थान से इंडेंट करेगा, जिसे इस साइट पर स्क्रिप्ट द्वारा कोड का अर्थ दिया जाएगा, और इस प्रकार तदनुसार सुधार किया जाएगा। –