0

私は2つのテーブルを持っています。

表 1 = ブランチ を含む

branch_id branch_name

表 2 = sales_data を含む

sales_id sales_date sales_branch sales_profit

各支店の 1 日の総売上高と 1 日の総利益を表示する必要はありません。特定の週の結果を戻す方法を知っているなど、データを戻す方法に本当に苦労しています。

また、すべてのブランチを常に表示し、何も販売していない場合は 0 を表示する必要があります。

どのように仕上げたいかの簡単な画像 ( http://i37.photobucket.com/albums/e71/dannyflap/screen_shot.jpg ) をまとめました。これは本当に私を夢中にさせています:(

アップデート

select sales_branch, WEEKDAY(sales_date), COUNT(sales_profit), SUM(sales_profit)
FROM sales_date
GROUP BY sales_branch, WEEKDAY(sales_date)

これにより、次の例が返されます。フィギュアは構成されています。

sales_branch, day, units, profit:

| branch1 | 0 (as day) | 16 | 439 |

| branch1 | 1 (as day) | 12 | 651 |

| branch1 | 2 (as day) | 22 | 312 |

| branch1 | 3 (as day) | 61 | 614 |

| branch1 | 4 (as day) | 12 | 541 |

| branch1 | 5 (as day) | 24 | 102 |

| branch1 | 6 (as day) | 21 | 145 |
4

2 に答える 2

0

ブランチにマップする sales_data の外部キーが必要になります。

sales_branch が branch_name または branch_id とは異なるものであると仮定すると、sales_data には以下が含まれている必要があります。

sales_id sales_date sales_branch branch_id sales_profit

また、特定の週の結果を取得するためのコードを投稿する必要があります。完全な回答を提供するのではなく、その上に構築するのに役立ちます.

編集 sales_data テーブルを変更して、ブランチ テーブルへの外部キー branch_id を持つようにすると、このクエリにより、探しているものに近づくはずです。

SELECT b.branch_name, WEEKDAY(s.sales_date), COUNT(s.sales_profit), SUM(s.sales_profit)
FROM branch b
LEFT OUTER JOIN sales_data on s.branch_id = b.branch_id
GROUP BY b.branch_id, WEEKDAY(s.sales_date)
于 2012-07-25T20:24:20.537 に答える
0

branch_idテーブル 1とテーブル 2で外部結合を実行sales_branchし、結果をループしてテーブルを生成する必要があると思います。アウター ジョインを使用すると、何も販売していない支店は になるNULLと思います。

あなたが問題を抱えているのはテーブル生成ですか?この問題に対して目を見張るような SQL を実行するのは賢明ではないと思います。私の2セント。

于 2012-07-25T20:29:36.867 に答える