如何设计查询选择价格,其中总和(税)小于价格到不同的表(tableA,tableB)

时间:2016-03-05 17:05:42

标签: sql sql-server sql-server-2005 sql-server-2012

如何为选择价格设计查询,其中总和(税)小于不同表格中的价格(tableA,tableB)

1 个答案:

答案 0 :(得分:0)

请检查以下SQL Select语句

;with cte as (
    select 
        a.id, a.tax, a.idprice, b.price, 
        sum(tax) over (partition by a.idprice) sum_tax
    from tableA a
    inner join tableB b
    on a.idprice = b.idprice
)
select * from cte
where sum_tax < price

首先我使用了SQL CTE (Common Table Expression) query 我使用CTE是因为我在WHERE子句中使用了总和列。 您也可以将相同的SELECT语句放在子查询中而不是SQL CTE表达式

关于上述查询的一个有趣的事情,也许你是第一次看到它;我使用SUM()聚合函数和Partition By子句 与SQL Count() Over (Partition By)子句一样,partition by使您可以在共享相同值的行上应用聚合函数