
いつも大変参考にさせてもらっています。
いま添付画像のようなテーブルを結合し、その中で計算した結果を列追加して表示しています。
単純にこの方法だと端数が切り捨てられてしまうので赤字部分を合算しても
元の金額「121841」と一致しません。
そこで親フラグに「1」がたっているものにおいては端数分を含めた値にしたいと考えているのですが、どのようなクエリにすればよろしいのでしょうか。
(利率78.9%の行は「121841-(1827+23880)」で求めた値としたい)
アドバイスのほどよろしくお願いいたします。

No.1ベストアンサー
- 回答日時:
複雑な SQL は保守性が悪くなるのでオススメできませんが、
やるとしたら
select *,
_ case when B.親フラグ = 1 then
_ _ AA.金額 - AA.子の費用合計
_ else
_ _ {算出費用の計算式}
_ end
from ( -- 複問い合わせで、親以外の費用合計をあらかじめ計算。子が無ければ 0 とする
_ select A.PID, A.金額, coalesce(sum( {算出費用の計算式} ), 0) AS 子の費用合計
_ from A left join B on A.PID = B.FID and B.親フラグ = 0
_ group by A.PID, A.金額
) as AA
left join B on AA.PID = B.FID
Ogre7077さんn
回答ありがとうございます。
保守性の話はよくわかります。
ほかの人が記述したSQLを読み解かないといけない時に
よく苦労することがあります。
もし考え方ひとつでシンプルにとる方法などがあればと思ったのですが、
そのようなものがなさそうだということがわかっただけでも助かりました。
頂いたような内容とするのか、テーブル構成なども含めて再検討すべきなのか今一度よく考えてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 隣のセルが空白以外の場...
-
ACCESSでの時間外計算方法
-
ファイルメーカーで学年を表示...
-
アクセスについて
-
生まれてくる子の性別の見分け方
-
「24日の0時」って・・・
-
日付の大小の表現
-
VBAでエクセルシートを更新...
-
差し込み印刷に当日の日付が入...
-
エクセルで最高値、最低値の日...
-
excelで、セル内に文字が入力さ...
-
宀や广など、部首だけを入力す...
-
エクセルのチェックボックスを...
-
「時間」、「期日」、「日付」...
-
エクセルで数字から名前に変...
-
差し込み印刷で日付の曜日を表...
-
メールの最後に日付をいれますか?
-
Excel:セルに入力されている日...
-
日付を差し込み印刷で表示した...
-
[SQLSERVER2005]OSの日付を変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 隣のセルが空白以外の場...
-
コンピューターで2進法が採用...
-
【ACCESS】未定義関数が発生。...
-
エクセルで四捨五入ではなく、5...
-
エクセルでeのマイナス乗の計算...
-
ファイルメーカーで学年を表示...
-
計算結果をCASE WHENで判断した...
-
ファイルメーカーで時間の表示...
-
選択クエリを開けない
-
整列の比較回数を表す数式でよ...
-
ACCESSでの時間外計算方法
-
CFLOOPで計算させたいのですが
-
ACCESSで生年月日より年齢を出...
-
アクセスである時点での年齢を...
-
ACCESS2000での年齢計算(...
-
どなたか教えて下さい。
-
ファイルメーカーで小数点以下...
-
年齢計算の関数を教えて下さい
-
ACCESS で深夜計算
-
UDB導入時の容量計算
おすすめ情報