- 締切済み
アクセス SQLでの型変換
エクセルで出勤予定の表を入力してます。 表 f1|f2|f3|f4・・・・|f19|f20 日付|曜日|◎|✖・・・・|合計数値(◎の合計)|✖の合計 それをアクセスにリンクでデータを取得して そこからユニオンクエリにて結合してるのですが 現在はf3~f18は人の名前が入ってまして、f19以降は集計欄としてますが 人が増えた場合は横にデータを伸ばしてるので、f19も人名に変わる可能性があります なので、f22ぐらいまで結合しておきたいのです。←この時点で発想が怪しい気はしてます。 とりあえず、現状のf19以降は抽出条件ではじけると思ってるので(?)f19以降の数値型をテキスト型にしておけばいいかなと思ってやってみたらうまくいきません *NULL文字の使い方が正しくないといわれます。 SQL select f1,f2,"f3" as name ,f3 from [2017年] where f3 in('◎','△','保') UNION・・・・省略 union select f1,f2,"f19" as name ,cstr(f19) from [2017年] where cstr(f19) in('◎','△','保') 最後の行を打たなければ正常に結合できるのですが・・・・ 解決方法を教えていただきたく、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hatena1989
- ベストアンサー率87% (378/433)
> *NULL文字の使い方が正しくないといわれます。 f19 の集計にNullがあるのなら、Nz関数でNullを空文字("")に変換する必用があります。 cstr(Nz(f19,"")) あるいは、下記でもNullは空文字に変換できます。 f19 & "" 余談ですが、ユニオンクエリは、 union all select ・・・・ と all を付けておかないと、重複データ排除処理が入りますので重くなります。 重複排除が必用ならしかたないですが。
お礼
非常に遅くなりましたが、ありがとうございました。 ブログと併せて、お世話になりまくってます。