SQL — ограничения, которые влияют только на одно из возвращаемых значений?

#sql #sql-server

#sql #sql-server

Вопрос:

Я хотел бы сформировать SQL-запрос для достижения следующего:

У меня есть таблица со столбцами A и B среди прочих. Я хотел бы получить сумму для A и сумму для B (в соответствии с предложением WHERE, которое я указываю), наряду с различными другими значениями. Однако для B возможно содержать значения null. Я также хотел бы, чтобы возвращаемое через тот же запрос значение суммы A, для которого соответствующее значение B не равно null. Это единственное возвращаемое значение, на которое я хочу повлиять, независимо от того, равно B null или нет.

Итак, есть какие-либо предложения о том, как я могу этого добиться? Я работаю в SQL Server 2008.

Любая помощь очень ценится

Ответ №1:

 SELECT SUM(A) AS SumA, 
       SUM(B) AS SumB, 
       SUM(CASE WHEN B IS NOT NULL THEN A END) As Foo, /*... Rest of Query*/
  

Комментарии:

1. Потрясающе, большое спасибо! Я приму этот ответ, как только stackoverflow позволит мне — кажется, что должно пройти определенное количество минут, прежде чем я смогу это сделать