Привет всем, у меня есть запрос sql
SELECT FKid1, FKID2, a, b, c
from [source]
where FKID1 = 3
, который возвращает следующий набор данных, так
(надеюсь, форматирование сохранится)
FKID1 FKID2 A B C
3 40297 0 0 2
3 40297 0 100 1
3 40325 0 0 2
3 40325 0 0 3
3 40325 0 10 -1
3 40348 0 10 3
3 40391 0 10 -1
3 40392 0 10 -1
3 40501 0 10 -1
3 40501 0 0 2
Я пытаюсь улучшить этот запрос, чтобы при наличии 2 строк с дублирующимися значениями FKID1 и FKID2 он выбрал значение столбца B из определенной строки следующим образом ...
если есть строка с C = -1, используйте значение B в этой строке и игнорируйте другие.
если есть 2 строки с C <> -1, тогда выберите значение MAX (B).
Для строк, которые не дублируются, вернуть как обычно.
То есть результаты должны выглядеть следующим образом ...
FKID1 FKID2 A B C
3 40297 0 100 1
3 40325 0 10 -1
3 40348 0 10 3
3 40391 0 10 -1
3 40392 0 10 -1
3 40501 0 10 -1
правильные значения, выбранные для столбца B, без дупликов.
У нас есть решение на данный момент, но я думаю, что оно слишком сложное и интересно, есть ли у кого-нибудь идеи?
Спасибо.