Использование оператора when и собственного кода внутри него - PullRequest
0 голосов
/ 20 мая 2019

У меня есть этот код, где я хочу реализовать сложную часть в операторе когда, чтобы я мог исправить проблему, есть несколько операторов когда после того, который я показываю

when d.ID in (1,2,3) and d.today <= '10/11/2018' AND (
select count(1)
    from table1 sc
    inner join table2 c on c.ID = sc.ID
    inner join table3 tc on tc.ID = sc.ID
    where sc.sid = 4
    and sc.fid is not null
    and c.fid = d.facultyid
    group by sc.sNum,sc.Fid,sc.todaydate,c.ID,tc.cnum
) B > 5 then 500 else 520 end

Выражение не-boolean тип, указанный в контексте, где ожидается условие, около 'B'.

1 Ответ

0 голосов
/ 20 мая 2019

У вас есть ложный псевдоним таблицы B.Удалите его

(select count(1)
    from table1 sc
    inner join table2 c on c.ID = sc.ID
    inner join table3 tc on tc.ID = sc.ID
    where sc.sid = 4
    and sc.fid is not null
    and c.fid = d.facultyid
    group by sc.sNum,sc.Fid,sc.todaydate,c.ID,tc.cnum
) > 5 

Я должен отметить, что вы, вероятно, теперь получите ошибку, что подзапрос возвращает более одной строки.Если так, задайте другой вопрос.На этот вопрос дан ответ.

Включите примеры данных, желаемые результаты, объяснение того, что должен делать запрос, и (возможно, упрощенную) версию вашего существующего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...