两张表:缺陷类型,缺陷名称
缺陷类型:bugtypeId   bugtype  bugtypere 
            1     重缺陷  sss
       2     轻缺陷  ddd
            3          分号错误  dfdfd
缺陷名称  bugnameId   bugname    bugnamere    bugtypeId
           1        功能未实现    slllfgfg            1
           2        功能错weu     sdsaslllfgfg        1
           3         功能未实现    slllfgfg           1
           4        功能未实现    sssslllfgfg         2 
           5        功能未实现    slllfgfgdd          2
缺陷类型的主键是bugtypeId 
缺陷名称的主键是bugnameId ,并且bugtypeId是外键
两张表是一对多的关系(一个缺陷类型可以有多个缺陷名称)
现在我想查:当页面上显示重缺陷时,它有多少个缺陷数?谁能帮我把sql语句写出来,谢谢!  

解决方案 »

  1.   

    select cnt = (select count(1) from 缺陷名称 where bugtypeid = a.bugtypeid)
    from 缺陷类型 a
    where bugtype = '重缺陷'
      

  2.   

    Unknown column 'cnt' in 'field list'报这个错
      

  3.   

    另外其实我想查的是缺陷类型bugtypeId对应的缺陷数
      

  4.   

    create table a
    (
    bugtypeId int,bugtype nvarchar(10),  bugtypere varchar(10)
    )
    insert into a
    select
    1,N'重缺陷','sss' UNION 
    SELECT
    2,N'轻缺陷','ddd' UNION
    SELECT
    3,N'分号错误','dfdfd' 
    CREATE TABLE b
    (
    bugnameId INT,bugname NVARCHAR(10),bugnamere VARCHAR(20),bugtypeId INT
    )
    INSERT INTO b
    SELECT
    1,N'功能未实现','slllfgfg',1 UNION
    SELECT
    2,N'功能错weu ','sdsaslllfgfg',1 UNION
    SELECT
    3,N'功能未实现','slllfgfg',1 UNION
    SELECT
    4,N'功能未实现','sssslllfgfg',2 UNION
    SELECT
    5,N'功能未实现','slllfgfgdd',2SELECT a.bugtypeId,a.bugtype,COUNT(b.bugtypeId) as count
    FROM a left join b on a.bugtypeId = b.bugtypeId
    group by a.bugtypeId,a.bugtype
    order by a.bugtypeIdbugtypeId   bugtype    count
    ----------- ---------- -----------
    1           重缺陷        3
    2           轻缺陷        2
    3           分号错误       0(3 row(s) affected)