質問する
0

LibreOffice Baseのクエリーの式について

質問日 2018-12-13 10:15:50 +0100

haru のGravatar画像

updated 2018-12-19 11:10:47 +0100

nogajun のGravatar画像

Accessで作ったDataBaseをBaseに変えているのですが、クエリーのフィールドで計算式を入れようと思っているのですがうまくいきません。Accessでは

反当単価: IIf([反当標準単位]="倍",100/[投入量]*[税込単価]/[規格],[投入量]*[税込単価]/[規格])

できちんとできるのですが、BaseのクエリーでIFは使えるのでしょうか?それともCASE文で書くのでしょうか? DataBase はAccessの .accdb でなく、埋め込みのHSQLDBです。

edit retag flag offensive close merge delete

Comments

クエリーのSQL表示は

SELECT "栽培工程"."ID", "栽培工程"."作型コード", "作型"."作型", "作型"."面積", "栽培工程"."作業名ID", "作業名"."作業名", "栽培工程"."予定日", "資材"."資材ID", "資材"."種別", "資材"."品名", "資材"."規格単位", "資材"."税抜単価", "税抜単価" * 1.08 AS "税込単価", "資材"."反当標準量", "資材"."反当標準単位", "栽培工程"."投入量", "栽培工程"."備考" FROM "作型", "栽培工程", "資材", "作業名" WHERE "作型"."作型コード" = "栽培工程"."作型コード" AND "資材"."資材ID" = "栽培工程"."資材ID" AND "栽培工程"."作業名ID" = "作業名"."ID"

までは表示されますが 反当単価の記述がsyntax errorではねられます。

haru のGravatar画像haru ( 2018-12-14 13:41:54 +0100 )edit

1 Answer

1

回答日 2018-12-16 14:44:02 +0100

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

解決しました。結局は case when ...else...end as ... で解決したのですが、フィールド名はダブルクオート(”**”)、文字の値はシングル(’**’)、クエリーで計算式で作った(テーブルにはない)フィールドは後のフィールドの計算に使えないなどがわからず時間がかかりました。解決したところをイタリックボールドで表示します。

SELECT "栽培工程"."ID",
 "栽培工程"."作型コード",
 "作型"."作型", 
 "作型"."面積",
 "栽培工程"."作業名ID",
 "作業名"."作業名",
 "栽培工程"."予定日",
 "資材"."資材ID", 
 "資材"."種別",
 "資材"."品名",
 "資材"."規格単位",
 "資材"."税抜単価",
 "資材"."税抜単価" * 1.08 AS "税込単価", 
 "資材"."反当標準量",
 "資材"."反当標準単位",
 "栽培工程"."投入量",
 "栽培工程"."備考",
case when "反当標準単位"= '倍' then 100/"投入量"*"税抜単価"1.08/"規格" else "投入量"*"税込単価"*1.08/"規格" end  as "反当単価"
FROM "作型", "栽培工程", "資材", "作業名"
 WHERE "作型"."作型コード" = "栽培工程"."作型コード" AND "資材"."資材ID" = "栽培工程"."資材ID" AND "栽培工程"."作業名ID" = "作業名"."ID"
edit flag offensive delete link もっと
ログイン/サインアップして回答する

質問ツール

1 follower

Stats

Asked: 2018-12-13 10:15:50 +0100

Seen: 44 times

Last updated: Dec 19 '18