计算SQL服务器中的按比例分配

问题描述:

我想要加入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

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