2016-12-06 11 views
0

"TLAuth"からデータを引き出しながら、 "Alphadata"というテーブルからデータを取得しようとしています - 今、Alphadataのデータは特定の状況でフォームを介して他のスタッフによって手動で更新されるテーブルであるため、TLAuthでの直接の比較は常に行われます。あるテーブルのデータを別のテーブルから作成します

現在のコードは次のとおりです。

SELECT Alphadata.Invoice, Alphadata.DateRaised, Alphadata.Amount, Alphadata.Staff, TlAuth.Invoice, TLAuth.TlAuthID 
FROM (Alphadata LEFT JOIN TlAuth ON Alphadata.invoice = TlAuth.invoice) LEFT JOIN Agents ON Alphadata.Staff = Agents.Alphaname 
WHERE (((Alphadata.DateRaised) Between [Start Date:] And [End Date:])); 

これはそれを実行し、私が望むすべてを引っ張る、しかし、それはTL認証フィールドを複製し、のようなスタッフの各メンバーのために、全体として私に間違った合計を提供します。

私はそれが "グループ化"機能だと思っていますが、私はそれを動作させる方法について100%ではありません。簡単にするために

答えて

1

、DISTINCT追加してみてください:

SELECT DISTINCT 
    Alphadata.Invoice, 
    Alphadata.DateRaised, 
    Alphadata.Amount, 
    Alphadata.Staff, 
    TlAuth.Invoice, 
    TLAuth.TlAuthID 
FROM 
    (Alphadata 
    LEFT JOIN 
     TlAuth 
     ON Alphadata.invoice = TlAuth.invoice) 
     LEFT JOIN Agents 
     ON Alphadata.Staff = Agents.Alphaname 
WHERE 
    Alphadata.DateRaised Between [Start Date:] And [End Date:]; 
+0

今は働いたこと。私はどこに日付が記録されているかに問題があると思う。 "DateAuthorised"というラベルの付いた同じテーブルのフィールドとAlphadata.DateRaisedのフィールドが同じ場合にのみTL.Invoiceをリンクする方法を知っている可能性はありますか? – Nik

+0

次に、DateRaisedフィールドの間に_inner join_を追加する必要があります'。 – Gustav

関連する問題