代码之家  ›  专栏  ›  技术社区  ›  user1342164

安装的程序的SQL计数未正确返回

  •  0
  • user1342164  · 技术社区  · 8 年前

    我正在尝试统计服务器和客户端上安装的每个软件的数量。当我运行第一个查询时,返回了4000多行。

    SELECT a.DisplayName0,c.Name0 FROM v_GS_ADD_REMOVE_PROGRAMS a, v_R_System c 
    WHERE  A.DisplayName0 NOT LIKE 'hotfix for%'
    AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
    GROUP BY c.Name0, A.DisplayName0
    ORDER BY c.Name0
    

    当我运行这个查询以便只获得计数而不显示每个客户端名称时,当计数应该超过4000时,它只有25个计数。

    SELECT COUNT(*), a.DisplayName0,c.Name0 FROM v_GS_ADD_REMOVE_PROGRAMS a, v_R_System c 
    WHERE  A.DisplayName0 NOT LIKE 'hotfix for%'
    AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
    GROUP BY c.Name0, A.DisplayName0
    ORDER BY c.Name0
    

    知道怎么回事吗?TIA

    1 回复  |  直到 8 年前
        1
  •  2
  •   Dave Markle    8 年前

    看起来你把两张桌子交叉连接在一起了。您可能需要使用内部联接。我不知道这两个表中的公共列是什么,但您的解决方案最终会是这样的:

    SELECT COUNT(*), a.DisplayName0,c.Name0 
    FROM v_GS_ADD_REMOVE_PROGRAMS a
    INNER JOIN v_R_System c 
         ON c.<some column> = a.<some column>
    WHERE  A.DisplayName0 NOT LIKE 'hotfix for%'
    AND A.DisplayName0 LIKE 'CCC Help Norwegian%'
    GROUP BY c.Name0, A.DisplayName0
    ORDER BY c.Name0