0

このプロジェクトの私の最終的な目標は、アクティブな女性従業員、アクティブな女性の扶養家族、アクティブな男性の従業員、およびアクティブな男性の扶養家族の正しい数を生み出すことです。最終的には、散布図または円グラフを使用して、この情報をクライアントに表示します。

現在、ActiveMemberTypeというテーブルがあります。

CC  HID     ID      DOB  Gender Month Total_Paid ActiveType
B11 BLM0    00  1987-07-12  F   2004-09 0.00    Dependent
B11 BLM0    00  1987-07-12  F   2004-10 0.00    Dependent
B11 BLM0    00  1987-07-12  F   2004-11 0.00    Dependent
B11 BLM0    00  1987-07-12  F   2004-12 0.00    Dependent

ActiveMembersPerMonthという別のテーブルがあります...

CC  ID         GID  Month-Total-Emp-Dep
B11 115 12818   2003-01 24  12  12
B11 115 12818   2003-02 24  12  12
B11 115 12818   2003-03 24  12  12
B11 115 12818   2003-04 24  12  12

たぶん、女性に支払われた合計で、アクティブタイプを分離することができます

IDとGIDは形式的に使用され、ここでは実際には必要ありません。CCは、月以外に参加できる唯一のものです。

これらの2つのテーブルで、次のような結果が得られるようにするにはどうすればよいでしょうか...

 CC HID SD  DOB      MONTH Active_Female_Emp Active_Male_Emp Active_Female_Dep Active_Female_Emp 
b11 BLM 0 yyyy-mm-dd  2010-01 7                     7             3               3

最終的には実際のカウントを合計に等しくする必要があります。明らかに、これらのフィールドは履歴データであるため静的であり、変更される可能性があるのはアクティブなフィールドだけです。

私の主な問題は、すべてのメンバーから支払われた合計を取り、それをSUM(IF(Gender ='M')1、0)タイプの取引で割ることでしたが、結果は非常にずれています。

CC HIDと_IDはメンバーを一意にするものであるため、月間アクティブメンバーテーブルにはないことに注意してください。サブクエリが必要になる場合があります...そこに着いたらそれを超えます...人々をブレインストーミングしましょう!ありがとう!

私は現在このプロジェクトに取り組んでいます。他にもテーブルがあることに注意してください。これらは、必要な特定のデータを格納するために作成した集計テーブルです。

これはEgyalのおかげで更新されます:

SELECT Client_Cd, Holder_Id, _ID,  Incurred_Month,          
SUM(Gender='F' AND Active_Type='Employee' ) AS Active_Female_Emp,          
SUM(Gender='M' AND Active_Type='Employee' ) AS Active_Male_Emp,          
SUM(Gender='F' AND Active_Type='Dependent') AS Active_Female_Dep,          
SUM(Gender='M' AND Active_Type='Dependent') AS Active_Male_Dep,
SUM(Total_Paid) as Total_Paid
FROM ActiveMemberType
WHERE Incurred_Month = '2006-06'
GROUP BY client_Cd, HoldeR_ID, _Id, Incurred_Month; 

明らかにこれはわかりませんが、ActiveMembersPerMonthテーブルを見ると

B11 115 12818   2006-06 428 180 248 42

ヘッダーなし...428は06-06の月の私のアクティブな合計です...

今あなたのクエリで、私のカウントは2221のアクティブに爆発します...多分計算エラー...

あなたの結果:

B11 BLM0    00  2006-06 2221    619 1468    2223    752371.20

とにかく、日付範囲内の特定の月の性別とActive_Typeによるtotal_paidが必要です

4

1 に答える 1

2
SELECT   Month,
         SUM(IF(Gender='F' AND ActiveType='Employee' , Total_Paid, 0)) AS fEmp,
         SUM(IF(Gender='M' AND ActiveType='Employee' , Total_Paid, 0)) AS mEmp,
         SUM(IF(Gender='F' AND ActiveType='Dependent', Total_Paid, 0)) AS fDep,
         SUM(IF(Gender='M' AND ActiveType='Dependent', Total_Paid, 0)) AS mDep
FROM     ActiveMemberType
GROUP BY Month
于 2012-05-31T14:05:35.227 に答える