0

これにふさわしいタイトルが思いつきません。

エージェントと紹介者のテーブルがあります。データは、エージェント別にソートされた小計部分に表示されます。

Agent = Referral の場合、カウントを取得するのは簡単です。

ただし、エージェント別にソートした場合、対象セット全体の紹介数を取得することは可能ですか?

たとえば、Smith は 10 件のレコードのエージェントでした。

Smith は 8 件のレコードの紹介者でもあり、そのうち 3 件は Smith がエージェント、5 件は Jones がエージェントでした。

エージェント別にソートされた小計部分では、スミスがエージェントおよび紹介者である場合に 3 を取得できます。スミスが対象レコードの 8 つのレコードの参照元であるのと同じ部分をどのように配置できますか?

おそらくSQLの実行を考えていましたが、意味のあるステートメントを書くのに十分なSQLを知りません。それとも私はそれで行くべきですか?

ありがとう!

4

1 に答える 1

0

この設定方法については 100% 明確ではありませんが、言及した 2 つのテーブル (紹介とエージェント) のみを扱っており、レポートは紹介テーブルに基づいていると仮定します。には、関連する 2 つのフィールドがあります。リファラーとエージェントです。

最初に認識すべきことは、Agent によってサブサマライズされた参照の対象セットについてレポートしようとしている場合、Smith のサブサマリと Jones のサブサマリに参照レコードを表示することはできないということです。

お探しのレポートを作成するには、いくつかの方法が考えられます。

  1. 対象レコード全体についてレポートする代わりに、対象レコード セットを小さく (人ごとに) レポートし、個々の対象レコードを互いに追加してレポートを組み立てます。例: Smith をエージェントまたはリファラーとしてすべてのリフェラルを検索するスクリプトを作成し、18 の対象セット (およびカウント) を (例から) 取得します。すべてのエージェントを反復処理し、収集したデータからレポートを組み立てます。

  2. Referral テーブルの新しい子テーブルを作成し、Referral のリファラーの各インスタンスと、Referral のエージェントの各インスタンスのレコードを作成します (ただし、Referrer とは異なる場合のみ)。次に、代わりにそのテーブルからレポートします。

  3. ご指摘のとおり、これは ExecuteSQL コマンドを使用して実行できるように思えます。あなたが探している出力の種類はわかりませんが、フィールド名は異なります (「AgentName」、「agent」、および「referrer」を使用しました) が、次のようになります。

    Go To Layout [ "Agents" ]
    Show All
    Go To Record/Request [ First ]
    Loop
        Set Variable [ $ThisAgent ; AgentName & " referrals: " & Evaluate ( ExecuteSQL ( "SELECT 1 FROM Referrals WHERE ( agent LIKE 'SMITH' OR referrer LIKE 'SMITH')" ; "" ; "+" ) ) ]
        Set Variable [ $ReportText ; List ( $ReportText ; $ThisAgent ) ]
        Go To Record/Request [ Exit after last, Next ]
    End Loop
    set Variable [ $$MergeVariableForReportDisplay ; $ReportText ]
    
于 2013-03-27T03:40:34.017 に答える