计算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
答
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
我已经做了很多假设这里当然..但是这应该让你去!
只是内部联接,也许......有些条件......您需要在此处展示一些努力并详细阐述商业案例。表b中的日期是什么意思?基于ID或ID和CODE或...的数据如何相关? – scsimon
我们可以根据编号,代码,楼层,单位编号加入。我需要定期的金额在销售时间段ID之间,如果有任何增加或减少,它应显示为按比例分配 – Ram