2013-07-02 38 views
5

Herkes ben daha büyük bir sorgudaSQL Server, bir 'durum'

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

üçüncü hat içindeki şuna benzer bir şey var, SQL Server doğru sözdizimi ile bana yardımcı olabilir içeride Select ifadesi doğru değil Tabii ki, HASCOTEACH adlı bir sütunun 1 0 içermesi gerekiyorsa, SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK AND ISNULL(COTH.DELT_FLAG,0)=0 sorgusu 1, 0'dan büyük bir değer döndürüyorsa.

cevap

2

Böyle deneyebilirsiniz ..

(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

aşağıdaki gibi bir şey deneyin:

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,