Я пытаюсь написать несколько условий IF в инструкции sql. Я хочу знать, что IF SMB равен 1, а затем проверьте, является ли ACT, REN или REP равным 1, выберите столбец QF из соответствующей таблицы, и я хочу, чтобы один ответ был как «a» и «b» в качестве его суммы.Несколько операторов IF в SQL
Input :
@SMB = 1,@Dealer = 0, @Act = 1, @Ren = 1, @Rep = 1
tblACT:
QF
1
2
tblREP
QF
1
2
tblREN
QF
1
2
OUTPUT :
a b
6 0
@SMB bit = 1,
@Dealer bit = 1,
@Act bit = 1,
@Ren bit = 1,
@Rep bit = 1
Select SUM(tbl.a), SUM(tbl.b) from
(If @SMB ='1'
If @ACT ='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblACT
union all
If @REN='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblREN
union all
If @REP='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblREP
union all
If @Dealer ='1'
If @ACT ='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblACT
union all
If @REN='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblREN
union all
If @REP='1'
CASE WHEN QF IN (1,2) THEN 1 ELSE 0 as a
CASE WHEN QF IN (4,5) THEN 1 ELSE 0 as b from tblREP) as tbl
Какая помощь вам нужна? какой результат вы ожидаете? –
Это не работает. Он дает синтаксическую ошибку и что не – user1989
предоставляет вам структуру таблицы и данные таблицы и пример вывода –