条件を満たした次のレコードから
初めまして(^^
ACCESSのクエリでの質問をさせて頂きます。(^^;;
テーブルA
ID,重量 と2つのフィールドを持ったテーブルAがあるとします。
テーブルB (金額テーブル kg/円)
10t以下,10t以上 と2つのフィールドを持ったテーブルBがあるとします。
(内容は 10t以下: 11円 10t以上:10円)
上記のテーブルAとテーブルBのデータを使用してクエリAを作成します。
クエリA(テーブルBはテーブル表示にてクエリA内に表示させてあります。)
既存のフィールド: ID,重量
新に作成するフィールド:累計重量,金額
ID ←そのまま表示
重量 ←そのまま表示
累計重量: DSum("重量","テーブルA","ID<=" & [ID] & "") ←累計の重量を算出
金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量]))
↑
累計重量で10t以下と10t以上の金額の割合を変更して算出させる。
テーブルAのデータとして↓
ID 重量
1 1000.6
2 2150.7
3 1821.2
4 5578.3
5 650.5
上記内容にてクエリAを実行すると多分下記の様に表示されます。
ID 重量 累計重量 金額
1 1000.6 1000.6 11006
2 2150.7 3151.3 23657
3 1821.2 4972.5 20033
4 5578.3 10550.8 55783
5 650.5 11201.3 6505
でも本当は下記の様な結果を得たいのです。
ID 重量 累計重量 金額
1 1000.6 1000.6 11006
2 2150.7 3151.3 23657
3 1821.2 4972.5 20033
4 5578.3 10550.8 61361 ←累計で10tを超えたレコードまでは1kg/11円で計算させたい。
5 650.5 11201.3 6505 ←ここから 1kg/10円の計算にしたい。
望む結果を得るためには下記の文にて条件を付け足していくと思いますが
金額: IIf(DSum("重量","テーブルA","ID<=" & [ID] & "")<=10000,Int([テーブルB]![10t以下]*[重量]),([テーブルB]![10t以上]*[重量]))
どのような条件の付け方をすれば良いか、困ってしまいました。そのものズバリの答えをお聞きするには余りにずうずうしいと思いますので、
ヒントや似たような感じの例などをご教示頂けたらと思います。
何卒、宜しく御願い致します。
お礼
ありがとうございました! 悪戦苦闘いたしましたが、素直に全部ダブルクォートをはずしてみたらできました! 時間がかかりましたができてとってもうれしいです!
補足
ダブルクォータが悪さしていたようで直して見ました IIF("[単位テーブル]![区分]=1",[重量]*[売単価],[員数]*[売単価]) が、どうも[員数]の値を変更しても合計が変わりません。 合計は[重量]か[員数]の数のどちらかの合計だけが必要です。 [重量] [員数] [単位] の場合は 0.5 200 t tは[区分]1なので、[員数]*[売単価]としたい [単位]をtとした場合は 個は[区分]=2なのでそれ以外の対象になり [重量]*[売単価] っとなると・・・もっとクエリとかが悪いのでしょうか?!