备注:表里肯定有记录,同一StorerKey和Sku下onHoldFlag可能全是0,也可能全是1,也可能又有0又有1,我要统计为0和为1时的总量,没有1时1的量就为0(没有0时0的量为0),都有时各自SUM

解决方案 »

  1.   

    SELECT dbo.inventory_detail.StorerKey, dbo.inventory_detail.Sku, isnull(SUM(QTY),0) AS    onhold
             FROM dbo.inventory_detail
             WHERE dbo.inventory_detail.onHoldFlag = 1
             GROUP BY dbo.inventory_detail.StorerKey, dbo.inventory_detail.Sku
    table dbo.inventory_detail
      

  2.   

    SELECT  StorerKey, Sku, --nullif(SUM(QTY),0) AS onhold,
            QTY=(Case when onHoldFlag=0 then 33 else 0 end)
     FROM dbo.inventory_detail
      

  3.   

    to WangZWang(阿来)
    33我只是举个例子,表里QTY的值多了。
    to quanyi(长生天) 
    你的方法也不行,查出来一样是没记录。NULL
      

  4.   

    SELECT isnull(dbo.inventory_detail.StorerKey,'key11111') as 'StorerKey',isnull( dbo.inventory_detail.Sku,'sku2222') as 'Sku', 
                   isnull(SUM(QTY) ,0) AS onhold
             FROM dbo.inventory_detail
             WHERE dbo.inventory_detail.onHoldFlag = 1
             GROUP BY dbo.inventory_detail.StorerKey, dbo.inventory_detail.Sku
      

  5.   

    to quanyi(长生天) 
    你的结果仍然显示不出来,无记录,
    再次说明:以上表中的那条记录是我模拟的,只是举个例子。
      

  6.   

    SELECT  StorerKey, Sku, 
            onhold=sum(Case when onHoldFlag=0 then QTY else 0 end)
     FROM dbo.inventory_detail
     group by StorerKey, Sku
      

  7.   

    SELECT
          a.StorerKey,
          a.Sku, 
          SUM(Case when a.onHoldFlag = 1 then a.QTY else 0 end) as onhold,
          SUM(Case when a.onHoldFlag = 0 then a.QTY else 0 end) as notonhold
    FROM 
          dbo.inventory_detail a
    group by
          a.StorerKey,
          a.Sku
      

  8.   

    SELECT  StorerKey, Sku, notonhold=0,
            onhold=sum(Case when onHoldFlag=0 then QTY else 0 end),         
     FROM dbo.inventory_detail
     group by StorerKey, Sku
      

  9.   

    向libin_ftsafe(子陌红尘) 学习,谢谢!!