我实际上选择了总和值的最大值。
但我需要反过来,我的意思是最大值之和
它的正确T-SQL语句是什么?
PropA PropB Max_PropAorB
10 11 11
12 11 12
12 11 12
10 11 11
12 11 12
Sum(56) Sum(55) Sum(58)
我实际上是: 56
但我希望得到 58
SELECT
(SELECT sum(Max_PropAorB) FROM (VALUES
(max( PropA )), (max( PropB))) AS value(Max_PropAorB)) as MyValue
FROM MyTable
答案 0 :(得分:2)
SUM(CASE WHEN PropA > PropB THEN PropA ELSE PropB END)
如果PropA和PropB是复杂的内部选择,你可以将它们写成CROSS APPLYs,这样你就可以用别名来引用它们,即:
SELECT
SUM(CASE WHEN PropA > PropB THEN PropA ELSE PropB END)
FROM [...]
CROSS APPLY (SELECT [...] ) a(PropA)
CROSS APPLY (SELECT [...] ) b(PropB)
答案 1 :(得分:1)
SELECT SUM(x.maxi)
FROM (
SELECT (
SELECT Max(v)
FROM (
VALUES (propa)
,(propb)
) AS value(v)
) maxi
FROM Mytable
) x