2010-05-10 20 views
0

在主表中顯示DETAILED.Fields的總和的最佳方法是什麼?如何顯示主表中的SUM字段

E.g.我有一張名爲'BILL'的主表,其中包含所有賬單相關數據和詳細的表格('BILL_DETAIL')以及賬單詳細的相關數據,如NAME,PRICE,TAX,...現在我想列出所有BILLS,沒有細節,但總和存儲在詳細表中的PRICE和TAX。

這裏是一個表的簡化架構:

TABLE BILL 
---------- 
- ID 
- NAME 
- ADDRESS 
- ... 

TABLE BILL_DETAIL 
----------------- 
- ID 
- BILLID 
- PORDUCT_NAME 
- PRICE 
- TAX 
- ... 

檢索到的錶行應該是這樣的:

BILL.CUSTOMER_NAME, BILL.CUSTOMER_ADDRESS, sum(BILL_DETAIL.PRICE), sum(BILL.DETAIL.TAX), ... 

任何sugguestions?

回答

0

簡單GROUP BYLEFT JOIN應該得到你想要的東西:

Select 
    bill.customer_name, 
    bill.customer_address, 
    Sum(bill_detail.price), 
    Sum(bill_detail.tax) 
From bill 
Left Join bill_detail On (bill_detail.billid = bill.id) 
Group By bill.id, bill.customer_name, bill.customer_address 

由您在選擇的列列表中有表bill的所有列確保組。

+0

問題是,我的BILL表有很多字段,它也有一些更詳細的表格,我想總結其他字段。我也會使用其他一些連接。這實際上是一個大的SELECT查詢。不知道GROUP BY有多快。我也想過使用VIEWS來總結我所有的詳細表格,然後加入它? – 2010-05-10 13:25:50

+0

我不希望你有任何由'GROUP BY'造成的性能問題,但你必須自己嘗試。該視圖可以提高可讀性,但是,您將不得不嘗試如何使用您的模型執行操作。 – 2010-05-10 13:39:41

+0

寫出來。意見幾乎總是沒有好處 – Randy 2010-05-11 00:53:25

相關問題