2016-11-17 4 views
0

私はポートフォリオ値(通貨)を表す数値を格納するユーザープロファイルを持っています。私は、推奨ファンドの購入を列挙した別のテーブルを持っていて、各ファンドに配分されるポートフォリオのパーセンテージをリスクファクターで示しています。パーセントが変化したとき、またはポートフォリオの価値が変化したときに、ファンド購入のドル価値を再計算する必要があります。MySQLには別のテーブルの反復値が含まれています

計算のためにポートフォリオの値を繰り返すだけで、すべてのクライアントに「実際の」テーブルを作成したくありません。クライアントのポートフォリオ値を選択し、計算に使用するすべての行に含めるクエリを作成するにはどうすればよいですか?

User PortfolioValue 
1  200,000 
2  50,000 
----------------------------- 

Asset  Fund Risk1Pct Risk2Pct 
CashE  MM  6%   4% 
Fixed  PIMCO 4%   6% 
US Equity UEF  50%  75% 

Desired Sample Output for User 1 via table generator (visual table, not database table) 

Asset  Fund Risk1Pct R1Calculation Risk2Pct R2Calculation 
CashE  MM  6% (6% * 200,000)  4%  (4% * 200,000) 
Fixed  PIMCO 4% (4% * 200,000)  6%  (6% * 200,000) 
US Equity UEF  50% (50% * 200,000) 75%  (75% * 200,000) 

ポートフォリオの値が、そのキー値構造を持つwp_usermetaに追加されました。ポートフォリオ情報はdemodbというテーブルにあります。

リスクパーセンテージは浮動小数点です。

更新--------------------------------------------- 私はusermeta(user_id、meta_key、meta_value)に追加する必要がある値を持っています。

各会社の投資オプションを持つ9つの会社テーブル(company_id、assetclass、fundname、risk1pct、risk1action、risk2pct、risk2action、risk3pct、risk3action、risk3pct、risk4action)があります。

テーブルuserportfolio(user_id、company_id、total401k、companystockamt、loansamt、withdrawalsamt)を作成しました。私はuser_idは、のcompany_id、assetclass、fundname、(risk1pct * total401k)、risk1action、(risk2pct * total401k)、risk2action、(risk3pct * total401k)、risk3actionのように入れているように、私は接続のすべてを取得しようとしている

、(risk4pct * total401k)、risk4action。

実際にuserportfolioテーブルが必要かどうかはわかりません。この情報はスキーマの意味ですか?

+0

データベースの「Risk1Pct」フィールドと「Risk2Pct」フィールドのフォーマット(フィールドタイプ)は何ですか?テーブル名は何ですか? – Hobo

答えて

0

あなたの%値は小数です(と私は質問を理解していること)と仮定すると、我々は簡単なでこれを行うに参加することができます

のは、あなたの最初のテーブルu(ユーザー)と2番目のテーブルri(推奨投資を)呼ぶことにしましょう

 
SELECT 
    u.User, 
    u.PortfolioValue, 
    ri.Asset, 
    ri.Fund, 
    ri.Risk1Pct, 
    (u.PortfolioValue * ri.Risk1Pct) AS `R1Calculation`, 
    ri.Risk2Pct, 
    (u.PortfolioValue * ri.Risk2Pct) AS `R2Calculation` 
FROM table1 `u` 
JOIN table2 `ri` 
+0

Oooo、私はそれが好きです。これは、このようにするために、ポートフォリオ価値のために別のテーブルを作成する必要があるということですか?現在、wp_usermetaに格納されています。これは、meta_key 'PortfolioValue'を金額のmeta_valueを選択するキーとして使用する必要があります。 select文を "ネスト"する方法はありますか? –

+0

絶対に!あなたはこのような何かをすることができます –

+0

絶対に! あなたは次のようなことができます:

 SELECT ... FROM table 'u' JOIN ( SELECT * FROM wp_usermeta WHERE meta_key = 'PortfolioValue' ) 'ri' 
これは完全な解決策ではありません。スキーマ全体を共有したい場合は、もう少しお手伝いできます。 –

関連する問題