データベースのセットアップ方法が原因で、データベースからのデータの抽出とカウントに少し問題があります。
各ケースには複数の顧客とサプライヤがあり、メインのサプライヤは 1 人です。
私が克服する必要がある主な問題は次のとおりです。
サプライヤーが会社に入社した時期に基づいて、数か月間の顧客の総数を最初に数えることができるようにするため。
データベースに最初の連絡がない場合があるため、「最初の連絡」があった顧客の数を数えます。
1 つのクエリで複数の結合を使用してこれを実行しようとしましたが、完全なデータが返されないようです。
複数の結合を使用することに非常に混乱しています。任意の順序で実行できることは理解していますが、2番目の結合が実行されているものがわからず、同じクエリで無関係なテーブルを合法的に結合できるか、または結合する必要があるかどうかもわかりませんこれを行うには、別のクエリを実行します。
以下の私の多くのクエリの1つを非常に単純化した図で再現したものを見つけてください。
SELECT Count(cc.customercase)
FROM customer cc
LEFT JOIN customer
ON cc.custid = c.custid
LEFT JOIN maincase m
ON m.id = cc.caseid
LEFT JOIN custcontactlog cl
ON cl.caseid = cc.custcaseid
LEFT JOIN supcase sc
ON sc.caseid = m.id
WHERE cl.contactlogtype = 'Initial Contact'
AND sc.primarysupplyer = 1
AND Calctargetdate(sc.joindate) > cl.postdate
AND cl.postdate > sc.joindate
AND c.gender = 'M'
AND sc.joindate BETWEEN CONVERT(DATETIME, '01/01/2012', 103) AND
CONVERT(DATETIME, '31/03/2012', 103)