I表Xを有する:条件付き合計、表Xの値を表示そして表Xからの条件に基づいて合計を生成する
| key | name | drcr | drcr_other | coa_type | coa_header |
|-----|--------|------|------------|----------|------------|
| 1 | assets | dr | cr | head | |
| 2 | cash | dr | cr | sub | assets |
| 3 | bank | dr | cr | sub | assets |
| 4 | equity | cr | dr | head | |
| 5 | income | cr | dr | sub | equity |
I表Yを有する:
| key | account | drcr | amount |
|-----|---------|------|--------|
| 1 | bank | dr | 1000 |
| 2 | income | cr | 1000 |
| 3 | cash | dr | 100 |
| 4 | bank | cr | 100 |
私はそれが示すようにクエリを生成したいと思います: 資産と資本は、そのサブアカウントの合計(ヘッダー行)です。例えば、収入のために株式のサブアカウントがあると収入が1000であることから、資本は1000
| account | amount |
|---------|--------|
| bank | 900 |
| income | 1000 |
| cash | 100 |
| assets | 1000 |
| equity | 1000 |
は、今のところ、私はそれらが表Yに追加する金額を持っているとしてまとめるために銀行と現金を得ることができなければなりません、私は資産の合計(現金と銀行の合計)と資本(所得の合計)をどのように追加するかについては不明です。現在、私は私がcoa_headerとcoa_typeフィールドを使用して合計を合計する可能性が考えていた...
SELECT name,
SUM(
IF(account = name AND Y.drcr = X.drcr, amount, 0) - IF(account = name AND Y.drcr = X.drcr_other, amount, 0)
)
AS Total FROM `Y`, `X`
GROUP BY name ORDER BY name
を次のステートメントを使用して、すべてを合計しています。私はMySQLを初めて使っていて、ちょうど遊んでいます。これはちょうど私が改造している個人的な夏のプロジェクトです。どんな助けでも感謝しています!
これは、1100年にはクレジットカードやデビットのそれぞれがあるので、私は、あなたがbank
のために900を取得する方法を理解していないすべてのMySQL 5.0.11に
なぜ 'equity 1000'という行はありませんか? – splash58
まず、 'INNER JOIN'を使用してテーブルを'結合 'する必要があります –
このサンプルデータを作成するときに、株式行を追加するのを忘れてしまいました。私は今それを追加します。 –