2013-07-02 14 views
5

Czy ktoś może mi pomóc z prawej składni SQL Server, mam coś, co wygląda tak wewnątrz większej zapytaniaSQL Server SELECT wewnątrz „przypadku”

VSCS.ISCOTEACH, 
VSCS.NoMARKS, 
CASE (SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0) > 0 THEN 1 ELSE 0 END AS HASCOTEACH), 

Trzecia linia nie jest poprawna oczywiście, prawie chcę, aby kolumna o nazwie HASCOTEACH zawierała 1, jeśli zapytanie SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK AND ISNULL(COTH.DELT_FLAG,0)=0 zwraca wartość większą niż 1, 0 w przeciwnym razie.

Odpowiedz

2

Można spróbować tak ..

(CASE when (SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0) > 0 THEN 1 ELSE 0 END) AS HASCOTEACH 
1

spróbować coś jak następuje:

VSCS.ISCOTEACH, 
VSCS.NoMARKS, 
CASE WHEN 
     (
     SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0 
     ) > 0 THEN 1 ELSE 0 END AS HASCOTEACH,