如何优化此查询?

Mik*_*ion 2 sql sql-server-2005

我在SQL Server 2005中有一个sales包含列的表ID,paymentType,price.

create table sales(id int IDENTITY(1,1),
                   paymentType varchar(2), 
                   price decimal(10,2) default(0)
                  )
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个查询中执行此操作?

SELECT SUM(price) as TE 
FROM sales 
WHERE paymentType = 'E' 

SELECT SUM(price) as TC 
FROM sales 
WHERE paymentType = 'C'
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 6

您可以使用GROUP BY按paymentType对值进行分组,并获得两个带有和的"E"和"C"记录

SELECT paymentType,SUM(price) 
FROM sales 
WHERE paymentType = 'E' or paymentType = 'C'
GROUP BY paymentType
Run Code Online (Sandbox Code Playgroud)