1

Access2003テーブルのフィールドに名前が表示される回数を表示したいと思います。テーブルの構造と内容は次のとおりです。

私はここでこの例を使用しました:

テーブル:

     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      �

テーブルにフィールドが表示される回数をカウントするにはどうすればよいですか?

4

2 に答える 2

0

コードがメインテーブルと同じであるカウントが必要だと思います。[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));
于 2012-07-06T10:54:56.910 に答える
0

私が思いついた解決策:

    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;
于 2012-07-09T06:32:17.340 に答える