【问题标题】:Counting how many times rows appear in one table in Access计算Access中一个表中行出现的次数
【发布时间】:2012-07-06 10:48:32
【问题描述】:

我想显示名称在 Access 2003 表的字段中出现的次数。这是表结构和内容:

我用这个例子here:

标签:

     1  - Name1   
     1  - Name2
     2  - Name1
     2  - Name3
     3  - Name1
     3  - Name2

结果

    Name1 - 3
    Name2 - 2
    Name3 - 1

这是我的代码

SELECT DISTINCT [tbl funktietitels].persoon, 

           [tbl funktietitels].funktiecode, [tbl funktietitels].funktietitel, [tbl funktietitels].userID, [tbl funktietitels].adres, [tbl funktietitels].dept, EXISTS
           (
               SELECT  [tbl funktietitels].funktiecode, COUNT([tbl funktietitels].funktiecode)
               FROM    [tbl funktietitels] 
               GROUP BY [tbl funktietitels].funktiecode 
           ) AS 'AMOUNT'
FROM ([tbl goedkeuring]

          INNER JOIN [tbl funktietitels] ON [tbl goedkeuring].goedk1 = [tbl funktietitels].funktiecode) 
          INNER JOIN [tbl doc] ON [tbl goedkeuring].volgnummer = [tbl doc].goedID


WHERE ((([tbl goedkeuring].bevestiging)=False));

这是显示的结果:

  persoon   funktiecode   funktietitel     userID   adres   dept    'AMOUNT'
Name, Name2 DLB          King of the sea       JGO            LOG      �

如何计算一个字段在表格中出现的次数?

【问题讨论】:

    标签: sql count subquery ms-access-2003


    【解决方案1】:

    我认为您想要一个代码与主表相同的计数。此示例将 [tbl funktietitels] 别名为 t 和 f。

    SELECT DISTINCT f.persoon, 
              f.funktiecode, 
              f.funktietitel, 
              f.userID, 
              f.adres, 
              f.dept, 
               (
                   SELECT  COUNT(t.funktiecode)
                   FROM    [tbl funktietitels] t
                   WHERE   t.funktiecode = f.funktiecode
               ) AS 'AMOUNT'
           FROM ([tbl goedkeuring]
           INNER JOIN [tbl funktietitels] f 
              ON [tbl goedkeuring].goedk1 = f.funktiecode) 
           INNER JOIN [tbl doc] 
              ON [tbl goedkeuring].volgnummer = [tbl doc].goedID
           WHERE ((([tbl goedkeuring].bevestiging)=False));
    

    【讨论】:

      【解决方案2】:

      我想出的解决方案:

          SELECT DISTINCT [tbl funktietitels].persoon, 
                 [tbl goedkeuring].goedk1, 
                 [tbl goedkeuring].db_user
      
                   (SELECT  count(*)
                    FROM  [tbl goedkeuring]
                    WHERE [tbl goedkeuring].goedk1 = [tbl funktietitels].funktiecode
                           AND ((([tbl goedkeuring].bevestiging)=False))
                   ) AS aantal
      
        FROM [tbl goedkeuring] 
             INNER JOIN [tbl funktietitels] 
                 ON [tbl goedkeuring].goedk1 = [tbl funktietitels].funktiecode;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多