みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもこのサイトを参考にして勉強しております、有難うございます。
SQL関数の勉強としたく自分でWEBで調べたのですが,
最終目的は3テーブル間の結合ですが、まず2テーブル間の結合で
以下のテーブルを作りました。
テーブル: SqlTest, SqlTest2
共通フィールド:name, 数量
これを結合してテーブル間のname毎の合計数量を出したいと、
下記の式を入れたのですが、?マークでうまくいきません。
お助け願えないでしょうか?
ExecuteSQL ( "select \"name\" , sum(\"数量\")
from \"SqlTest\"
LEFT JOIN \"SqlTest2\" on \"SqlTest\".\"name\" = \"SqlTest2\".\"name\"
"; "";"";"")
nameが各テーブル内でユニークであれば、結合結果の同じレコード内の合計だからSUMは使わない。
ExecuteSQL ( "select t1.\"name\" , t1.\"数量\"+t2.\"数量\"
from \"SqlTest\" t1
LEFT JOIN \"SqlTest2\" t2 on t1.\"name\" = t2.\"name\"
"; "";"";"")
SQLExecuter様、ありがとうございます。
見事に結合されて、答えがでました。
ただ、その私が作成した2テーブル間の中に
1テーブルにしかないnameのデータがありまして、
それだけ表示されないです。
SqlTest
name 数量
TOM 10
JAY 20
MARY 30
SqlTest2
name 数量
TOM 10
JAY 20
計算結果
TOM,20
JAY,40
MARY,
また別の式になるのでしょうか?
わたしの説明が足らず、申し訳ないです。
t1.\"数量\"+t2.\"数量\"
ここでどっちかがNULLだと結果もNULLになるので、0に変換してから足す。
COALESCE(t1.\"数量\", 0) + COALESCE(t2.\"数量\", 0)
t1の方は必ず値があるならt2の方だけでもいいかな。
SQLExecuter様、素晴らしいです。
有難うございました。
Pages: 1
[ Generated in 0.020 seconds, 7 queries executed - Memory usage: 507.35 KiB (Peak: 518.41 KiB) ]