0

データベースのセットアップ方法が原因で、データベースからのデータの抽出とカウントに少し問題があります。

各ケースには複数の顧客とサプライヤがあり、メインのサプライヤは 1 人です。

私が克服する必要がある主な問題は次のとおりです。

  1. サプライヤーが会社に入社した時期に基づいて、数か月間の顧客の総数を最初に数えることができるようにするため。

  2. データベースに最初の連絡がない場合があるため、「最初の連絡」があった顧客の数を数えます。

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)  

http://i50.tinypic.com/2qk3pqa.png

4

1 に答える 1

0

2 つのことを達成しようとしている場合は、それを達成するために 2 つの別々のクエリを用意することをお勧めします。

于 2012-06-22T12:28:45.250 に答える