2012-09-19 20 views
13

मेरे पास 2 टेबल हैं जिन्हें मुझे दिनांक और 2 मानों के आधार पर एक साथ जोड़ने की आवश्यकता है।माइस्क्ल यूनियन और ग्रुप द्वारा

यह मुझे सभी जानकारी की सूची देता है - ठीक है।

$query = (SELECT date, debit, credit , note FROM proj3_cash) 
UNION 
(SELECT settle, purch, sale, issue FROM proj3_trades) 
ORDER BY date"; 

अब मुझे दो तालिकाओं से दैनिक योग के लिए जानकारी को ग्रुप करने की आवश्यकता है।

$query = "(SELECT date, SUM(debit), SUM(credit)FROM proj3_cash GROUP BY date) 
UNION 
(SELECT settle as date, SUM(purch) as debit, SUM(sale) as credit FROM proj3_trades GROUP BY date) 
ORDER BY date"; 

ठीक है, लेकिन अगर वहाँ प्रत्येक तालिका में एक ही तिथि पर कुछ है मैं इस मिल:

date  SUM(debit) SUM(credit) 
-------------------------------------- 
2010-12-02 0.00   170.02 
2010-12-02 296449.91  233111.10 

मैं कैसे समूह में एक ही दिन में दो करते हैं?

यदि मैं अंत में ग्रुप बाय जोड़ता हूं - मुझे केवल एक त्रुटि मिलती है। या यह एक जॉइन के साथ किया जाना चाहिए?

SELECT date, SUM(debit), SUM(credit) 
FROM 
(
    SELECT date, debit, credit 
     FROM proj3_cash 
    UNION ALL 
    SELECT settle as date, 
      purch as debit, 
      sale as credit 
     FROM proj3_trades 
) derivedTable 
GROUP BY date 
ORDER BY date 

मैं संघ को यूनिअन बदल दिया है सभी क्योंकि संघ दोनों तालिकाओं में पाया डुप्लिकेट को निकाल देगा:

उत्तर

15

आप इस का उपयोग कर ली गई तालिका प्राप्त कर सकते हैं।

संबंधित मुद्दे