2015-09-25 31 views
1

我需要編寫一條語句,以獲取客戶總數和所有帳戶總和的總和。我能夠單獨做每一件事,但我無法讓他們成爲一個聲明。錯誤消息是什麼意思,FROM應該在哪裏?試圖將select sum和count statemenents合併爲一個(oracle db)

這是貸款總

SQL> SELECT SUM(amount) as "total" 
    FROM loan, borrower 
    WHERE borrower.loan_number = loan.loan_number; 

聲明這對客戶來說是

SQL> SELECT COUNT(*) 
     FROM customer; 

我已經聯合他們這樣的數量的發言,但我得到一個錯誤信息,你可以看到。

> SQL> SELECT 
2 (SELECT COUNT(*) as "Total Customers" from customer) 
3 (SELECT SUM(amount) as "Total Loan Values" 
4 FROM borrower, loan 
5 WHERE borrower.loan_number = loan.number); 
(select sum(amount) as "Total Loan Values" 
* 
ERROR at line 3: 
ORA-00923: FROM keyword not found where expected 

回答

1

由於從customer查詢只返回一行,你可以與其他問題cross join它:

SELECT  SUM(amount) as total, cnt 
FROM  loan 
JOIN  borrower ON borrower.loan_number = loan.loan_number; 
CROSS JOIN (SELECT COUNT(*) AS cnt 
      FROM customer) 
0

您可以修改您的查詢像下面

SELECT 
(SELECT COUNT(*) as "Total Customers" from customer), 
(SELECT SUM(amount) as "Total Loan Values" 
FROM borrower, loan 
WHERE borrower.loan_number = loan.number) 
FROM DUAL; 
1

試試這個:

SELECT 
    (SELECT COUNT(*) as "Total Customers" from customer), 
    (SELECT SUM(amount) as "Total Loan Values" 
    FROM borrower, loan 
    WHERE borrower.loan_number = loan.number) 
FROM DUAL; 

您錯過了一個逗號;另外,你總是需要一個FROM子句。如果沒有要命名的表格,則將DUAL用作虛擬。