with NoOfOrder
as (
SELECT Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,Jan,Feb,Mar
FROM (
select LEFT(datename(month,InvoiceDate),3) mon,InvoiceNo as InvoiceNo
from tbl_InvoiceMain ,tbl_OrderMain,tbl_CompanyMaster
where tbl_InvoiceMain.OrderID = tbl_OrderMain.OrderID
and (CAST(tbl_InvoiceMain.InvoiceDate AS date) BETWEEN tbl_CompanyMaster.YearStart AND tbl_CompanyMaster.YearEnd)
) P
PIVOT (count(InvoiceNo)for mon in (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)) PV ),
OntimeDelivery
as (
SELECT Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,Jan,Feb,Mar
FROM (
select LEFT(datename(month,InvoiceDate),3) mon,InvoiceNo as InvoiceNo
from tbl_InvoiceMain ,tbl_OrderMain,tbl_CompanyMaster
where tbl_InvoiceMain.OrderID = tbl_OrderMain.OrderID
and (CAST(tbl_InvoiceMain.InvoiceDate AS date) BETWEEN tbl_CompanyMaster.YearStart AND tbl_CompanyMaster.YearEnd)
and CAST(tbl_InvoiceMain.InvoiceDate AS date) <= CAST(tbl_OrderMain.ScheduledDispatchDate AS date)
) P
PIVOT (count(InvoiceNo)for mon in (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)) PV )
select * from NoOfOrder
union all
select * from OntimeDelivery It giving resulte
Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar 18 35 39 52 32 47 47 22 14 0 0 0 9 10 16 22 6 11 19 10 5 0 0 0
Expected Resulte
Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Total NoOfOrder 18 35 39 52 32 47 47 22 14 0 0 0 306 OnTimeDelivered 9 10 16 22 6 11 19 10 5 0 0 0 108 DeliverPerformance% 50.00 28.57 41.03 42.31 18.75 23.40 40.43 45.45 35.71 0.00 0.00 0.00 35.29
DeliverPerformance% formula = (OnTimeDelivered/NoOfOrder) * 100 e.g ( (9/18)*100) = 50
thanks in advance