2017-07-07 166 views
0

我想要加入A表B並使用B &獲得按比例分配的銷售額。 如何做到這一點。誰能幫我?計算SQL服務器中的按比例分配

Table A: 
SALES_TIME_PERIOD_ID CODE ID FLOOR_NO UNIT_NO 
31/07/2015    CN  K1A L01  153 
31/08/2015    CN  K1A L01  153 
30/09/2015    CN  K1A L01  153 
31/10/2015    CN  K1A L01  153 
30/11/2015    CN  K1A L01  153 
31/12/2015    CN  K1A L01  153 
31/01/2016    CN  K1A L01  153 
29/02/2016    CN  K1A L01  153 
31/03/2016    CN  K1A L01  153 
30/04/2016    CN  K1A L01  153 
31/05/2016    CN  K1A L01  153 
30/06/2016    CN  K1A L01  153 

Table B: 

CODE ID FLOORNO UNITNO CHARGESTARTDATE CHARGEENDDATE PERIODICAMOUNT 
CN  K1A L01 153   24/08/2014 23/08/2015  13400.96 
CN  K1A L01 153   24/08/2015 23/08/2016  14071 
CN  K1A L01 153   24/08/2016 23/08/2017  14774.55 

我想輸出:

SALES_TIME_PERIOD_ID CODE ID FLOOR_NO UNIT_NO ACTUAL  PRORATED 
31/07/2015    CN  K1A L01  153  13400.96 13400.96 
31/08/2015    CN  K1A L01  153  13400.96 13573.87355 
30/09/2015    CN  K1A L01  153  14071  14071 
31/10/2015    CN  K1A L01  153  14071  14071 
30/11/2015    CN  K1A L01  153  14071  14071 
31/12/2015    CN  K1A L01  153  14071  14071 
31/01/2016    CN  K1A L01  153  14071  14071 
29/02/2016    CN  K1A L01  153  14071  14071 
31/03/2016    CN  K1A L01  153  14071  14071 
30/04/2016    CN  K1A L01  153  14071  14071 
31/05/2016    CN  K1A L01  153  14071  14071 
30/06/2016    CN  K1A L01  153  14071  14071 
+0

只是內部聯接,也許......有些條件......您需要在此處展示一些努力並詳細闡述商業案例。表b中的日期是什麼意思?基於ID或ID和CODE或...的數據如何相關? – scsimon

+0

我們可以根據編號,代碼,樓層,單位編號加入。我需要定期的金額在銷售時間段ID之間,如果有任何增加或減少,它應顯示爲按比例分配 – Ram

回答

1
Select 
tableA.SALES_TIME_PERIOD_ID 
, tableA.Code 
, tableA.ID 
, tableA.floor_no 
, tableA.Unit_no 
, cast(tableB.PERIODICAMOUNT as decimal(13,2)) as ACTUAL 
, tableB.PERIODICAMOUNT as PRORATED 


from tableA 

inner join tableB 
on tableA.Code = tableB.Code 
and tableA.ID = tableB.ID 
and tableA.floorno - tableB.floorno 
and tableA.unitno = tableB.unitno 
and tableA.SALES_TIME_PERIOD_ID between tableB.CHARGESTARTDATE and tableB.CHARGEENDDATE 

我已經做了很多假設這裏當然..但是這應該讓你去!

+0

這將加入表A和B.但如何獲得按比例分配的金額? – Ram

+0

這取決於您的業務定義「實際金額」實際上是什麼意思..以及它是如何採購的。 – Harry

+0

表A的銷售時間段始終爲EOM。表B有收費開始和結束日期。我需要根據日期計算比例,例如。 2015年8月23日定期金額變化。所以需要使用公式如下:(23/31 * 13400.96)+(8/31 * 14071)= 13573.87355 – Ram