2016-06-22 7 views
2
SELECT `account_id`,`cust_name` 
FROM `account` 
WHERE `acc_openingdate` BETWEEN '2001-01-01' AND '2016-03-31' 
    AND STATUS = 'open' 


SELECT `acid`,sum(amount) 
FROM `payments` 
WHERE `date` BETWEEN '2001-01-01' AND '2016-03-31' 
group by `acid` 

SELECT `account_id`,sum(amount) 
FROM `loan` WHERE `date` BETWEEN '2001-01-01' AND '2016-03-31' 
group by `account_id` 

ACCOUNT_ID wurden, Säure und account_id ist die gleicheWie 3-Abfragen kombinieren in 1

+0

hier Konto, Zahlungen und Darlehen sind verschiedene Tabelle von der gleichen Datenbank .. –

+0

können wir alle diese Abfrage in execl setzen, aber ich möchte in einer gleichen Tabelle dire ganz sicher –

Antwort

1

Sie diese mit entsprechenden Abfragen tun können:

SELECT a.account_id,a.cust_name, 
     (SELECT SUM(amount) FROM payments p 
     WHERE p.date BETWEEN '2001-01-01' AND '2016-03-31' AND p.acid = a.account_id) as pay_sum, 
     (SELECT SUM(amount) FROM loan l 
     WHERE l.date BETWEEN '2001-01-01' AND '2016-03-31' AND l.account_id = a.account_id) as loan_sum 
FROM account a 
WHERE a.acc_openingdate BETWEEN '2001-01-01' AND '2016-03-31' 
    AND a.STATUS = 'open' 
2

Sie Unterabfrage verwenden können;)

SELECT t1.`account_id`, t1.`cust_name`, t2.p_amount, t3.a_mount 
FROM `account` t1 
LEFT JOIN (
    SELECT `acid`, sum(amount) as p_amount 
    FROM `payments` 
    WHERE `date` BETWEEN '2001-01-01' AND '2016-03-31' 
    group by `acid` 
) t2 ON t1.`account_id` = t2.`acid` 
LEFT JOIN (
    SELECT `account_id`, sum(amount) as a_mount 
    FROM `loan` WHERE `date` BETWEEN '2001-01-01' AND '2016-03-31' 
    group by `account_id` 
) t3 ON t1.`account_id` = t3.`account_id` 
WHERE t1.`acc_openingdate` BETWEEN '2001-01-01' AND '2016-03-31' 
AND t1.STATUS = 'open'