SQLSERVER 日付NULLの判定
検査テーブルの検査日がNULL値で入っております。
MAGIC XPA4.9のSQLコマンドでの判定は、できますが、
通常の範囲指定より
例1) 日付範囲指定 NULL()~2024/12/31 抽出されません。
例2) 日付範囲指定 NULL()~NULL() 抽出されます。
例1)の日付範囲指定より
MAGICSQL(DB SQL)の式で回避することは、可能でしょうか?
-
SQLコマンドではなく
普通のメインソースにして
データビューに検査日があり
それに対してFrom〜To指定をし
From指定をしなかかった場合、検査日Nullの分が表示などされない
ということでしょうか。検査日のFromには
CNDRANGE(From条件<>0、From条件)
はいかがでしょうか。私は普段Nullを使っていないので
的外れならごめんなさい。 -
magic SQLの所に
ISNULL(検査日,0)>=開始日
なんて事は書けませんかね?
実際に試しておりませんので
誤りならご容赦ください。 -
nkmtさんいつもありがとうございます。
CNDRANGE(From条件<>0、From条件)ためしましたが
Toに2024/9/6日付をいれるとはじかれます。
MAGICSQL(DBSQL)のWHERE句のコマンドでできそうなきするのですがとりあえずの回避案として
1.テーブルの日付NULL←0000/0/0更新してしまう。
2.指示画面に日付Nullのみ表示するチェックボックスを設定する
いづれかで逃げたいとおもいます -
CNDRANGE(From条件<>0、NULL())こんな事できましたっけ?
追記
CNDRANGE(From条件<>0、NULL())ではなく
CNDRANGE(From条件=0、NULL())
を言いたかったのと
NUII()という関数が存在するか投稿時点では未確認でしたが、その後ヘルプで存在を確認しました。
-
CNDRANGE(From条件<>0、NULL())
ではなく
if(From条件=0、NULL()、From条件) -
TO 日付条件が NULLであれば抽出されますが
FROM NULL()~ ToNULL() OK
TO日付条件が2024/9/9になると抽出されないようです。
FROM NULL~ To2024/9/9 NG
-
何度もすみません。
画面指定
検査日 (指定無し) ~ 2024/9/9 と指定した場合検査日 CNDRANGE(開始指定日<>0、開始指定日) ~ 終了指定日
でも駄目でしょうか? -
NGでした
-
失礼しました。
-
SQLコマンドくわしくないのでDBSQLの埋込でできそうな気がします。
いまいちど研究してみます。
サインインしてコメントを残してください。
コメント
10件のコメント