Mysql база данных Alias ​​Filter - PullRequest
0 голосов
/ 29 февраля 2020
SELECT *
     , t.BG as TY
     , IF (t.BG >= 15, 'Y', 'D') AS Toplam 
  FROM 
     ( SELECT Uzmanadid AS Uzman_Ad
            , Kurumid
            , SUM(Bireysel)
            , IF(Kurumid like '%L%',
                IF(SUM(Bireysel) > 20, 200, 10)
              , IF(SUM(Bireysel) > 90, 20, 15)
                ) AS BG
        FROM Tbl_pss2 
       GROUP 
          BY Uzman_Ad) as t

Я хочу отфильтровать это, где Toplam = 'Y', но я не могу это сделать. Я попробовал это:

SELECT *,t.BG as TY, IF (t.BG >= 15, 'Y', 'D') AS Toplam FROM (SELECT
Uzmanadid AS Uzman_Ad, Kurumid, SUM(Bireysel), IF(Kurumid like '%L%',
IF(SUM(Bireysel) > 20, 200, 10), IF(SUM(Bireysel) > 90, 20, 15)) AS BG
FROM Tbl_pss2 WHERE Toplam = 'Y' GROUP BY Uzman_Ad) as t

Но это не сработало. Если я попытаюсь отфильтровать его с уже существующим именем столбца (exp. Where Uzmanid = 'Alex'), это сработает. Но другой код не работает, потому что его псевдоним еще не существует.

Так как я могу отфильтровать это

1 Ответ

0 голосов
/ 29 февраля 2020

Значение столбца Toplam равно:

IF (t.BG >= 15, 'Y', 'D')

, поэтому условие:

Toplam = 'Y'

равно TRUE, когда:

t.BG >= 15

Таким образом, вы можете фильтровать так:

WHERE t.BG >= 15 
...