AテーブルとBテーブルがあります。同じコード、例えば111のコードを持つ時の
Aテーブルの、aフィールドの値がBテーブルのbフィールドの値より小さい時の数を数えるといったことをしたいのですが、こういったことはできますか?
説明が下手で申し訳ありませんが、ご教授してくださるととても嬉しいです。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
あの後、当初書いてくださったこともあわせて見返してやってみたらできました!(喜
whereは一応書いてしまってたのですが、いらなかったですよね、書いてくださっていたのにすみません・・・
本当に色々ありがとうございます!!
投稿2018/03/20 10:52
総合スコア14
0
ベストアンサー
where句で条件に合致するものを抽出してカウントすればいいでしょう。
sql
1select A.CODE, Count(1) 2from tableA as A inner join tableB as B 3 on A.CODE = B.CODE 4where A.Afield < B.Bfield 5group by A.CODE;
追記
AテーブルとBテーブルの関係はどうなっているのでしょうか。それによっては希望の結果にならないかも。
一対多の関係ならいいですが、多対多だとすると、どのような結果がお望みなのか、不明瞭ですね。
実際のデータ例をだして、希望の結果を例示してもらえると回答しやすいです。
投稿2018/03/16 02:48
編集2018/03/16 05:08総合スコア33715
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
条件に一致する場合を1として合計すれば良いかと思います。
SQL
1select A.CODE, sum(iif(A.Afield < B.Bfield, 1, 0)) as cnt 2from tableA as A inner join tableB as B 3 on A.CODE=B.CODE 4group by A.CODE
※on A.CODE=B.CODE
は結合条件なので、実際とは違うかもしれません
上記はすべてのデータの一覧なので、コードをピンポイントで指定した場合は、group byは不要です。
SQL
1select sum(iif(A.Afield < B.Bfield, 1, 0)) as cnt 2from tableA as A inner join tableB as B 3 on A.CODE=B.CODE 4where A.CODE=111
投稿2018/03/16 02:17
編集2018/03/16 03:30総合スコア25195
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/16 05:45
2018/03/16 06:41
2018/03/17 12:12
2018/03/19 03:17
2018/03/19 08:12
2018/03/20 02:20
2018/03/20 02:47
2018/03/20 03:08
2018/03/20 18:05
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。