如何在SQL中进行双重计算?

时间:2019-02-15 07:49:09

标签: sql sql-server

我不确定我的问题标题是否有意义。我需要计算一些数据。

我只有Sales1和Sales2详细信息。

我被困在SQL计算上。 TotalSales是Sales1 +Sales2。SST= TotalSales * 6%,GrandTotal是TotalSales + SST。

我需要输出如下内容:

哦,Sales1和Sales2也从其他字段的SUM(量)生成。因此,它比其他计算

--------------------------------------------------------------------- 
|  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  |
---------------------------------------------------------------------  

如何生成SQL?这样的东西似乎不起作用。如何使用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;  

2 个答案:

答案 0 :(得分:4)

将第一步查询包装为派生表,以计算出sales1和sales2。然后对结果进行其余计算:

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

答案 1 :(得分:0)

您需要使用子查询。尝试类似的东西:

ResourceExhaustedError: OOM when allocating tensor with shape[16788,10000] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc