2017-09-27 20 views
0

私は今朝、2つのアクセス(Access 365)クエリを1つのステートメントに結合するために数時間かかりました。私はフォーラムを読んだことがあり、さまざまな組み合わせを試みましたが、動作させることはできません。私はSQLの専門家ではなく、誰かが助けて間違っているところを指摘できるかどうか疑問に思っていました。Accessで2つのSQLクエリを組み合わせる

手動で入力した場合、ユーザー名は「DRIP」である電子だった場合、私は出席文献名、 は、それが記録されます注文が作成されるたびに、それは2つの関連する列 監査のユーザー名を持っている(データ)テーブルを持っている ログインしたユーザー名を取得します。

私が望むのは、リクエスタ名(出席依頼名)である列1、リクエスタが出現した回数(総リクエスト数)、列3の合計回数依頼者は、私が働いている何依頼者

で私に電子要求の割合を示したことは2つのクエリ

WORKINGたstatments(で書かれているので、私は4番目の列を生成することができます 電子(電子要求の総数を)それを作りましたメモ帳 - アクセス時に行を省略しています):

--Total number of unique requests per requester 
    SELECT DISTINCT Data.[Attendance Ref Name], Count(Data.[Attendance Ref Name]) AS [Total Number of requests] 
    FROM Data 
    GROUP BY Data.[Attendance Ref Name] 

、私が試してみましたWHAT

--Total Number of unique requester received electronically per Requester. 
    SELECT DISTINCT Data.[Attendance Ref Name], Count(Data.[Attendance Ref Name]) AS [Total Number of Electronic requests]FROM Data WHERE (((Data.[Audit Username])="DRIP")) 
    GROUP BY Data.[Attendance Ref Name]; 

SELECT DISTINCT Data.[Attendance Ref Doctor Name], Count(Data.[Attendance Ref Doctor Name]) AS [Total Number of requests]FROM Data 
    UNION 
    SELECT DISTINCT Data.[Attendance Ref Doctor Name], Count(Data.[Attendance Ref Doctor Name]) AS [Total Number of Electronic requests]FROM Data WHERE (((Data.[Audit Username])="DRIP")) 
    GROUP BY Data.[Attendance Ref Doctor Name]; 

SELECT 
    (SELECT DISTINCT Data.[Attendance Ref Doctor Name], Count(Data.[Attendance Ref Doctor Name])FROM Data) AS [Total Number of requests], 
    (SELECT DISTINCT Data.[Attendance Ref Doctor Name], Count(Data.[Attendance Ref Doctor Name])FROM Data WHERE Data.[Audit Username]="DRIP")AS [Total Number of Electronic requests] 

私もhttps://www.w3schools.com/sql/default.aspチュートリアル

をしてきたが、私は彼らがめざし取得することはできません私の苦しみから私を救い出してくれる人はいらっしゃいますか?任意のヘルプ

答えて

0

を事前に おかげであなたが一緒にあなたの第一及び第二のクエリからの結果をリンクする結合を使用する必要があります。

次を使用することができ、すべての参照名が両方のテーブルにあると仮定すると:

SELECT q1.[Attendance Ref Name], q1.[Total Number of requests], q2.[Total Number of Electronic requests] 
FROM (
    SELECT DISTINCT Data.[Attendance Ref Name], Count(Data.[Attendance Ref Name]) AS [Total Number of requests] 
    FROM Data 
    GROUP BY Data.[Attendance Ref Name] 
) AS q1 
INNER JOIN (
    SELECT DISTINCT Data.[Attendance Ref Name], Count(Data.[Attendance Ref Name]) AS [Total Number of Electronic requests]FROM Data WHERE (((Data.[Audit Username])="DRIP")) 
    GROUP BY Data.[Attendance Ref Name] 
) AS q2 
ON q1.[Attendance Ref Name] = q2.[Attendance Ref Name] 
+0

HIエリック、依頼者が「hasn場合、すなわち、クエリの最初の部分のすべての値を表示するためにそこの方法ですそれは0と表示される電子的な要求をしましたか?またはこれは別の参加ですか? – Craig

+0

すべての参照名を示すテーブルがある場合、そのテーブルを最初のテーブルとして使用し、そこから名前を選択してから、両方のテーブルをLEFT JOINを使用して結合することができます。そして、不足しているすべてのエントリが 'NULL'を持っており、0でないが、あなたは' 'のNz(のMyField、0)を使用してゼロと' NULL'を置き換えることができます –

関連する問題