2013-07-02 22 views
5

Qualcuno mi può aiutare con la sintassi corretta in SQL Server, ho qualcosa che assomiglia a questo all'interno di una query più grandeSQL Server, Select all'interno di un 'caso'

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), 

La terza linea su non è corretta ovviamente, voglio una colonna denominata HASCOTEACH per contenere un 1 se la query SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK AND ISNULL(COTH.DELT_FLAG,0)=0 restituisce un valore maggiore di 1, 0 altrimenti.

risposta

2

Si può provare in questo modo ..

(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

provare qualcosa di simile seguente:

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, 
Problemi correlati