根据学生贷款列出2个以上州的学校名称

时间:2015-02-19 03:01:50

标签: sql sql-server

tbl1:schID,SChName

tbl2:SchID,stuid,city,state,loan_purpose,Action

我有两张桌子,tbl1列出了学校ID和学校名称,而tbl2列出了学校的学生,贷款目的和行动。 我需要帮助编写一个查询来列出接受的学校名称 超过2个州的申请(贷款类型=" FS"行动是" A)。

2 个答案:

答案 0 :(得分:1)

您希望使用GROUP BY使用WHERE来应用行级过滤器(操作和贷款用途),然后HAVING用于聚合过滤器(州数)。

SELECT
    tbl1.SchID,
    tbl1.SchName
FROM tbl1
    INNER JOIN tbl2
        ON tbl1.SchID = tbl2.SchID
WHERE tbl2.loan_purpose = 'FS'
    AND tbl2.Action = 'A'
GROUP BY
    tbl1.SchID,
    tbl1.SchName
HAVING COUNT(DISTINCT tbl2.state) > 2
ORDER BY
    tbl1.SchName

答案 1 :(得分:0)

 select SCHName FROM(
    select tbl1.schname, count(*) FROM 
 tbl1 INNER JOIN tbl2 on tbl1.SCHID = tbl2.SCHID 
 WHERE tbl2.loan_purpose = 'FS' AND tbl2.ACTION = 'A'
 GROUP BY SCHName
HAVING count(*) > 2
                    )