みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
以前も似たような質問をさせていただきありがとうございました。
今回もグラフに関しての質問なのですが、X軸に時間軸(月)があり
Y軸は金額がベースになるのですが、それをグループ分けしたグループ分けフィールドに基づき積み重ね棒グラフとして表示したいと思っています。
Y軸系列を追加するときの計算式がどのようにしても正しく表示されません。
グループ 金額
DoCoMo 10000 2014/01/01
au 10000 2014/01/01
SoftBank 10000 2014/01/01
DoCoMo 10000 2014/01/01
こういった感じでつづいていきます
という感じでこれらのグループをわけて表示したいという希望です。
Offline
同じ区分で系列を追加するのだから、データの形はこういうのが必要になります。
X 系列1 系列2
DoCoMo 10000 10000
au 10000 0
SoftBank 10000 0
クロス集計ですね。
グラフにしたいだけだから、系列2の値は直接グラフ設定内の計算式で出してもいいわけですが、縦方向はグループごとに1レコードにしないとX軸で複数になってしまうでしょう。
毎月必ずグループデータがあるのなら、別テーブルで年月でリレーションして
関連レコードの集計値のGetNthRecordをY軸系列にするとか?
入力されているデータとしては、日々の売上が入っています。1日だけでもかなりの件数があります。
これを月別のグループ単位での金額にまとめグラフにしたいと思っております。
Excelでいうところのクロス集計になるかとおもうのですが、クロス集計の過去のサンプルをいろいろ見ましたが
サンプルデータのリンク先が消えているのが多くうまくクロス集計表自体がつくれませんでした。
どこかにわかりやすいサンプルデータはありませんでしょうか
Offline
クロス集計には違いないけど軸が間違ってたorz
X Docomo au softbank
2014年1月
2014年2月
ですよね?
開始年月
終了年月
年月
がテキストフィールドであるとして
ExecuteSQL("
SELECT \"グループ\"
FROM \"テーブル\"
WHERE \"年月\">=? AND \"年月\"<=?
GROUP BY \"グループ\"
ORDER BY \"グループ\"
";"";"";開始年月;終了年月)
これがX軸
Y軸は
ExecuteSQL("
SELECT SUM(\"金額\")
FROM \"テーブル\"
WHERE \"年月\">=? AND \"年月\"<=? AND \"グループ\" = ?
GROUP BY \"グループ\"
ORDER BY \"グループ\"
";"";"";開始年月;終了年月;"Docomo")
など
これだと「毎月必ずグループデータがあるのなら」ですね...ない場合もうちょっと複雑
Layouter様
ありがとうございます。
X軸が 2014年1月、2014年2月・・・などとなります。
毎月必ずグループデータのいずれかはありますがグループの中でいくつかのグループは集計をかけた結果0件と言うことがあるかもしれません。
それとたとえば
FROM \"テーブル\" というのは 「テーブル」のとことに実際に使用しているテーブル名に置き換えればいいということでしょうか?
X軸が?となってしまいました。
\"の間に入ってるのは全部テーブルかフィールド名なんで、実際の値にしてください。
>いくつかのグループは集計をかけた結果0件
金額が0でもレコードがあるならいいですけど、そうでないとY軸の集計結果がずれてしまうので、さっきのではだめです。
集計値データがあるという事ではないのですね。
ワンパターンサンプル。縦棒グラフfmp12
http://pupld.net/21/140130/3u2eb9w6m9/index.cgi
もちろんグラフに0は表示されませんが。
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 518.59 KiB (Peak: 523.5 KiB) ]