自動

2016-09-07 7 views
1

私はここに新しいですし、私は、支援してくださいブロックコーダーを持って1つのクエリのPHPのmysqlから複数の行を生成し、私は1つのクエリから複数の結果を取得し、私が1行たいit.egから値の新しい行を作成しようとしています行2と3を生成します。ここで、行1は一般的なトランザクションであり、行2は行1から得られた1%であり、手数料は行3で0.5%で作成されたもので、次の結果を出力するクエリを生成できますか?自動

Date  | End Date | Shop | Trans | Amount | Ref No 
-----------|-------------|--------|----------|----------|--------- 
16/9/2016 | 16/10/2016 | FGB | Payed | 10 000 | 251   
15/10/2016 | xxxxxxxxx | xxx | xxxx | 100 | 251  
15/10/2016 | xxxxxxxxx | xxx | xxxx | 50  | 251  

これらの結果は1つのテーブルでなければなりませんか?前もって感謝します。 MySQLでは

+0

クエリは、何も新しい行を生成できません。あなたは簡単にあなたのためにそれらの行を挿入するコードを書くことができますが、 '' -typeクエリが1行を取る...選択して、魔法のように私は、MySQLの機能についてが、MS SQLで確認していない3. –

+0

にそれを回すことはできません1つのINSERTが追加のINSERT文を含め、必要な処理を実行するSQLコードをトリガできるトリガを使用してトリガを実行できます。 MySQLに類似のトリガー機能がある場合は、それが私が探し始める場所です。私は、データベースからデータを取得する方法を知っているが、私は(行1)データを取得したいと思いますので、 – SunKnight0

+0

おかげでマルク・B&@ SunKnight0.Iあなたは何からデータを生成することができないことを理解し、あるが唯一の解決策をトリガー計算と出力を行いますそれらの結果はお互いの後に同じテーブルにある。 –

答えて

0

あなたはそのような新しい行を作ることはできません。 でも列を作成できます。

その場合、あなたは

select 
    *, 
    Amount * 0.01 as interest, 
    Amount * 0.005 as commission 
from your_mega_table; 

のような例を実行することができますし、あなたのコードを変更する場合は、異なる量の行の3つのバージョンを取得することができます。

そうしないと、あなたのケースを解決する、データベース内のcronスクリプトやトリガやストアドプロシージャのいくつかの種類を、行う必要があります。

+0

ありがとう@Spell、それは、それがcronスクリプト/トリガーまたはストアドプロシージャの唯一の方法だと思われます。あなたは私がこれについてどうやって行くかの例を挙げることができますか? –

+0

私にとっては、メイン行を挿入するときに他の行を挿入することをお勧めします。あなたの問題の文脈で、私はあなたがお金で働くことを理解しています。この場合、将来コードを変更する場合は、すべての計算をdbで修正する必要があります。レガシーコードを残してサポートする必要があります。しかし、データをdbに保存する場合、従来のコードは必要ありません。 – Spell

+0

@ Spellありがとう、私はデータベースコードを使うつもりだと思うが、これは初めての方が合理的だと思う。あなたの時間と答えをありがとう。祝福はある。 –