我的表结构和记录分别如下:
性别(xb)   民族(mz)
女            汉
女            汉
女            回
男            汉
男            汉
男            回
想要的结果是:
汉族 男为:2
汉族 女为:2
回族 男为:1
回族 女为:1
请问如何解决呀!

解决方案 »

  1.   

    分别写四条sql语句。
    select count(*) where mz=''条件''
      

  2.   

    select mz,xb,count(*) from table 
    group by mz,xb
      

  3.   

    select mz,xb,count(*) from table group by mz,xb
      

  4.   

    我想把上面查询出来的结果添加到listview里,怎么做?listview是这样的!
    民族   男   女
    汉     2    2
    回     1    1
      

  5.   

    看看这个吧:procedure TfrmDemoTree.InitListView;
    //初始化ListView
    var
      name,strSQL:string;
      lvItem:TListItem;
      Tempqry:TQuery;
    begin
      Tempqry := TQuery.Create(self);
      try
        lvDemoTree.Items.Clear;       //清空
        name := tvDemoTree.Selected.Text;
        strSQL := ' select id '
                + ' from Tcity '
                + ' where name='''+name+'''';
        ExecQry(strSQL,dmDemoTree.qryLV,true);   //执行SQL语句
        if not dmDemoTree.qryLV.Eof then
        begin
          strSQL := ' select * '
                  + ' from Tcity where parentid='
                  + inttostr(dmDemoTree.qryLV.fieldbyname('id').asinteger);
          ExecQry(strSQL,dmDemoTree.qryLV,true);
          while not dmDemoTree.qryLV.Eof do  
                         //下面是添加到ListView中,
          begin
            lvItem := lvDemoTree.Items.Add;
            lvItem.Caption := inttostr(dmDemoTree.qryLV.fieldbyname('id').AsInteger);
            lvItem.SubItems.Add(dmDemoTree.qryLV.fieldbyname('name').AsString);
            strSQL := ' select name '
                    + ' from Tcity '
                    + ' where id='
                    + inttostr(dmDemoTree.qryLV.fieldbyname('parentid').AsInteger);
            ExecQry(strSQL,Tempqry,true);
            lvItem.SubItems.Add(Tempqry.fieldbyname('name').AsString);
            dmDemoTree.qryLV.Next;
          end;
        end;
      finally
        Tempqry.Free;
      end;
    end;