Reputation: 333
I am not sure if my question title is meaningful or not. I need to calculate some data.
I only have Sales1 and Sales2 details.
I am stuck at SQL calculation. TotalSales is Sales1 + Sales2.. SST = TotalSales * 6% and GrandTotal is TotalSales + SST.
I need output something like this:
Oh and Sales1 and Sales2 also generate from SUM(amount) from other fields. So, it's calculation over other calculation
---------------------------------------------------------------------
| Sales1 | Sales2 | TotalSales | SST | GrandTotal |
---------------------------------------------------------------------
| 10.00 | 20.00 | 30.00 | 1.80 | 31.80 |
| 50.00 | 75.90 | 125.90 | 7.554 | 133.454 |
| 20.10 | 55.50 | 75.60 | 4.536 | 80.136 |
---------------------------------------------------------------------
How to generate the SQL? Something like this seems not working.. How to use back TotalSales & SST?
Select sum(amount1) Sales1,
sum(amount2) Sales2,
(Sales1 + Sales2) TotalSales,
((Sales1 + Sales2) * 6/100) SST,
((Sales1 + Sales2) + ((Sales1 + Sales2) * 6/100)) GrandTotal
from sales_tbl;
Upvotes: 1
Views: 982
Reputation: 14389
You need to use a sub-query. Try something like:
SELECT subquery.Sales1
,subquery.Sales2
,(subquery.Sales1 + subquery.Sales2) TotalSales
,((subquery.Sales1 + subquery.Sales2) * 6 / 100) SST
,((subquerySales1 + subquery,Sales2) + ((subquery,Sales1 + subquery,Sales2) * 6 / 100)) GrandTotal
FROM (
SELECT sum(amount1) Sales1
,sum(amount2) Sales2
FROM sales_tbl
) subquery
Upvotes: 0
Reputation: 44696
Wrap the first step query up as a derived table, to calculate sales1 and sales2. Then do the rest of the calculations on its result:
select sales1, sales2,
(Sales1 + Sales2) TotalSales,
((Sales1 + Sales2) * 6/100) SST,
((Sales1 + Sales2) + ((Sales1 + Sales2) * 6/100)) GrandTotal
from
(
select sum(amount1) Sales1, sum(amount2) Sales2
from sales_tbl
) dt
Upvotes: 4