试试这个:
--1.第一个问题
select BM,PH,GYS,sum(RKS) as RKS
from 表B
where BM in (select WL 表A where ZJ = '是')
group by BM,PH,GYS
--2.第二个问题
select BM,PH,GYS,sum(RKS) as RKS
from 表B
where BM in (select WL 表A where ZJ = '否')
group by BM,PH,GYS

解决方案 »

  1.   


    -- 质检表1
    select b.BM,b.PH,b.GYS,sum(b.RKS) '汇总数'
     from 表B b
     inner join 表A a on b.BM=a.WL
     where a.ZJ='是'
     group by b.BM,b.PH,b.GYS
     
    -- 非质检表2
    select b.BM,b.PH,b.GYS,sum(b.RKS) '汇总数'
     from 表B b
     inner join 表A a on b.BM=a.WL
     where a.ZJ='否'
     group by b.BM,b.PH,b.GYS
      

  2.   

    我现在根据三个字段group by得到了下面数据:
     CRKDH   FPH     LOTNO   SWRKS
    90006 IN13-0885    ABC    90.00
    90067 IN13-0844    ZZZ    150.00
    90088 IN13-0899    FFF    420.00
    但是BO_ZHKCSJBZY 中还有其他的字段,想根据上面的结果带出其他所有字段的数据出来,包括总数SWRKS也一起带出来。
    想要效果是下面,该怎么改?
     CRKDH   FPH     LOTNO   SWRKS  ziduan1  ziduan2 ziduan3...
    90006 IN13-0885    ABC    90.00    a         b      c
    90067 IN13-0844    ZZZ    150.00   b         c      a
    90088 IN13-0899    FFF    420.00   w         f      f     
    下面是执行的语句:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO。
      

  3.   

    我现在根据三个字段group by得到了下面数据:
     CRKDH   FPH     LOTNO   SWRKS
    90006 IN13-0885    ABC    90.00
    90067 IN13-0844    ZZZ    150.00
    90088 IN13-0899    FFF    420.00
    但是BO_ZHKCSJBZY 中还有其他的字段,想根据上面的结果带出其他所有字段的数据出来,包括总数SWRKS也一起带出来。
    想要效果是下面,该怎么改?
     CRKDH   FPH     LOTNO   SWRKS  ziduan1  ziduan2 ziduan3...
    90006 IN13-0885    ABC    90.00      a         b      c
    90067 IN13-0844    ZZZ    150.00     b         c      a
    90088 IN13-0899    FFF    420.00     w         f      f     
    下面是执行的语句:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO。
      

  4.   

    select *
    from tb a
    where exists (select 1 from (group by 的结果集) b where a.主键=b.主键)
    这样可以带出其他数据
      

  5.   

    我现在根据三个字段group by得到了下面数据:
     CRKDH   FPH     LOTNO   SWRKS
    90006 IN13-0885    ABC    90.00
    90067 IN13-0844    ZZZ    150.00
    90088 IN13-0899    FFF    420.00
    但是BO_ZHKCSJBZY 中还有其他的字段,想根据上面的结果带出其他所有字段的数据出来,包括总数SWRKS也一起带出来。
    想要效果是下面,该怎么改?
     CRKDH   FPH     LOTNO   SWRKS  ziduan1  ziduan2 ziduan3...
    90006 IN13-0885    ABC    90.00      a         b      c
    90067 IN13-0844    ZZZ    150.00     b         c      a
    90088 IN13-0899    FFF    420.00     w         f      f     
    下面是执行的语句:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO。是这样吗,把其他字段加进去:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS ,ziduan1  ziduan2 ziduan3...
    from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO,ziduan1  ziduan2 ziduan3...
      

  6.   

    我现在根据三个字段group by得到了下面数据:
     CRKDH   FPH     LOTNO   SWRKS
    90006 IN13-0885    ABC    90.00
    90067 IN13-0844    ZZZ    150.00
    90088 IN13-0899    FFF    420.00
    但是BO_ZHKCSJBZY 中还有其他的字段,想根据上面的结果带出其他所有字段的数据出来,包括总数SWRKS也一起带出来。
    想要效果是下面,该怎么改?
     CRKDH   FPH     LOTNO   SWRKS  ziduan1  ziduan2 ziduan3...
    90006 IN13-0885    ABC    90.00      a         b      c
    90067 IN13-0844    ZZZ    150.00     b         c      a
    90088 IN13-0899    FFF    420.00     w         f      f     
    下面是执行的语句:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO。是这样吗,把其他字段加进去:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS ,ziduan1  ziduan2 ziduan3...
    from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO,ziduan1  ziduan2 ziduan3...
    但是这样是根据CRKDH,FPH,LOTNO,ziduan1  ziduan2 ziduan3...这些好多个字段来分组了呢,
    而不是根据CRKDH,FPH,LOTNO这三个字段分组。怎么看?
      

  7.   

    我现在根据三个字段group by得到了下面数据:
     CRKDH   FPH     LOTNO   SWRKS
    90006 IN13-0885    ABC    90.00
    90067 IN13-0844    ZZZ    150.00
    90088 IN13-0899    FFF    420.00
    但是BO_ZHKCSJBZY 中还有其他的字段,想根据上面的结果带出其他所有字段的数据出来,包括总数SWRKS也一起带出来。
    想要效果是下面,该怎么改?
     CRKDH   FPH     LOTNO   SWRKS  ziduan1  ziduan2 ziduan3...
    90006 IN13-0885    ABC    90.00      a         b      c
    90067 IN13-0844    ZZZ    150.00     b         c      a
    90088 IN13-0899    FFF    420.00     w         f      f     
    下面是执行的语句:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO。是这样吗,把其他字段加进去:
    select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS ,ziduan1  ziduan2 ziduan3...
    from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO,ziduan1  ziduan2 ziduan3...
    但是这样是根据CRKDH,FPH,LOTNO,ziduan1  ziduan2 ziduan3...这些好多个字段来分组了呢,
    而不是根据CRKDH,FPH,LOTNO这三个字段分组。怎么看?select CRKDH,FPH,LOTNO,SUM(SWRKS) AS SWRKS ,max(ziduan1) ziduan1,  max(ziduan2) ziduan2, max(ziduan3) ziduan3 ...
    from BO_ZHKCSJBZY 
    where HWBM in
    (select WL from BO_ZSJB where ZJ = '是' AND 
    BINDID=(SELECT TOP (1) BINDID from BO_ZSJBBT GROUP BY BINDID,SCSJ ORDER BY SCSJ DESC))
    and isend=1 group by CRKDH,FPH,LOTNO
      

  8.   

    这个select 1 from 是?