2016-02-17 60 views
-2

我目前正在爲本地公司開發基於Web的應用程序(我在大學的高級項目)我終於獲得了我想要的數據,除了一張桌子。這是一個取決於總分配的用水跟蹤系統。因此,正如您在所提供的鏈接中的圖片中所看到的那樣,我擁有一張包含該公司所管理的所有MapTaxLots的大表。每個MapTaxLot可以有幾種類型的土地。示例)AcresAmountKID,AcresAmountKBID,AcresAmountWarren **另外,一個客戶可以擁有多個MapTaxLots。我需要做的是在另一個表格中填寫一個總分配,該分配佔用每個MapTaxLot中的每種類型的英畝,並將其與所提供的圖像中的小表中的相應乘數相乘。一旦完成了所有這些計算,我需要將每個客戶的所有計算結果一起添加到空表中。從多個表格的計算動態填充表格

TL; DR:我需要從每個MapTaxLot的小表中乘以小表中的KID乘以大表中的AcresAmountKID。然後我爲剩餘的AcreTypes做這個。然後,我需要將所有值添加到每個客戶的一個總和(分配)中,並將該計算插入到空表中。我很抱歉,如果這很難理解,但這個問題是如此獨特,我從來沒有以這種方式從不同的表中進行計算。

http://imgur.com/a/f8Oww

+1

哪個DBMS你使用MySQL或MS SQL SERVER?使用適當的標籤... – Sankar

回答

0

如果我理解正確你的問題,這是你想要的查詢,這對於MSSQL服務器

insert into Allotment 
select customerID, sum(
(select AcresAmountKID from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='KID')) + 
(select AcresAmountKBID from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='KBID')) + 
(select AcresAmountWarren from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='WARREN')) + 
(select AcresAmountGroupE from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='GROUPE')) + 
(select AcresAmountRent from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='RENT')) + 
(select AcresAmountCalD from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='CALD'))), TotalAllocation 
sum((select AcresAmountKID from land where MapTaxID = ld.MapTaxID) * (select MultiplierAmount from AcreMultiplier where AcreTypeID='KID')) remainingAcreTypes, 
Null 
from Land ld where group by customerID 
+0

嘿,我非常感謝迴應!我不確定我問的問題非常好。我試圖將其粘貼到查詢中,並且感到困惑。我需要將所有英畝類型(如KID,KIBID,Warren等)合併爲一個大的數額,並將其放入分配(分配)中,然後乘以相應的乘數。這是我現在擁有的,我只是好奇第二個SUM是什麼。再次感謝您的幫助! – Cels

+0

這裏是我現在使用正確表名稱的查詢的鏈接。但是,我不確定第二個總數和剩餘的AcreTypes。 http://imgur.com/YSBXhqk – Cels

+0

你現在可以檢查嗎? – Sankar