select n.node_code,n.node_name,nn.norder_status,ws.wmsord_status from node n 
    left join node_order nn on n.node_type=nn.node_type
    left join wmsorder_sheet ws on ws.wmsord_id=nn.norder_objid
    where n.node_pid=(select inode.node_id from node inode where inode.node_code='checkTable') and 
nn.norder_status='A' and ws.wmsord_status is not null其中ws.wmsord_status 这个有两种状态,我想将每种状态分开统计,应该怎么做?比如,ws.wmsord_status 这个字段有2个是‘A’状态,3个是‘I’状态,要显示ws.wmsord_status 在加一个它的count(*),重复的去掉....最后显示的应该是2条记录。分别记录每个状态的总记录数.....

解决方案 »

  1.   

    那就加一个select count(distinct ws.wmsord_status)
      

  2.   

    select n.node_code,n.node_name,nn.norder_status,ws.wmsord_status ,count(distinct ws.wmsord_status) from node n 
      left join node_order nn on n.node_type=nn.node_type
      left join wmsorder_sheet ws on ws.wmsord_id=nn.norder_objid
      where n.node_pid=(select inode.node_id from node inode where inode.node_code='checkTable') and 
    nn.norder_status='A' and ws.wmsord_status is not null
      

  3.   

    这是mysql的,oracle的是count(unique ws.wmsord_status)
      

  4.   

    分组统计啊select nn.norder_status,count(*) from node n 
      left join node_order nn on n.node_type=nn.node_type
      left join wmsorder_sheet ws on ws.wmsord_id=nn.norder_objid
      where n.node_pid=(select inode.node_id from node inode where inode.node_code='checkTable') and 
    nn.norder_status='A' and ws.wmsord_status is not null
      group by nn.norder_status
      

  5.   

    select ws.wmsord_status ,count(*) from node n  
      left join node_order nn on n.node_type=nn.node_type
      left join wmsorder_sheet ws on ws.wmsord_id=nn.norder_objid
      where n.node_pid=(select inode.node_id from node inode where inode.node_code='checkTable') and  
    nn.norder_status='A' and ws.wmsord_status is not null
      group by ws.wmsord_status 
    看你的需求就是对ws.wmsord_status分组统计一下嘛