- ベストアンサー
Accessで計算式を利用した在庫期間の算出方法について質問です。
OS XP Access ver.2003 ・在庫の保有期間を算出したいです。 ・元になるデータは入庫月と現在月で、形式はどちらも「yyyy/mm(年月)」です。 たとえば、入庫月「2008/12」現在月「2009/02」です。 上記の保有期間は「入庫月」と「現在月」の間に存在する期間を1月(ひとつき)とすると、「1」と算出させたいです。 ・入庫月と現在月はDBより抽出しておりデータ型は数値型で、テーブルのプロパティ変更はできません。 ・どのようにクエリを作成すれば、保有期間を算出できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 入庫月:200810 現在月:200902 …とあるので 両方の項目とも文字列でYYYYMMの形で入っている。"/"は入っていない …と仮定して。 DateDiff('m',CDate(Mid(Trim([入庫月]),1,4) & '/' & Mid(Trim([入庫月]),5,2) & '/' & '01'),CDate(Mid(Trim([現在月]),1,4) & '/' & Mid(Trim([現在月]),5,2) & '/' & '01'))-1 入庫月「200812」現在月「200902」の場合、1と表示されます。 入庫月「200810」現在月「200902」の場合、3と表示されます。
その他の回答 (2)
チクット横から失礼! SELECT DateDiff("m",Format([入庫月],"yyyy/mm/01"),Format([現在月],"yyyy/mm/01"))-1 AS 保有期間 FROM tab1; とフォーマットされないと・・・。 長整数なようですから・・・。
- o_chi_chi
- ベストアンサー率45% (131/287)
DateDiff("m", [入庫月] & "/01", [現在月] & "/01") - 1 as 保有期間 でいいのでは。
補足
アドバイス、ありがとうございます。試してみたのですが、指定の仕方が悪いせいか、うまくデータが出てきませんでした。具体的なアドバイスをいただいたにも関わらず、申し訳ございません。 たとえば、入庫月:200810 現在月:200902 の場合、アドバイスいただきました式ですと、保有期間が「1103」と出てきてしまいます。。。 計算式はクエリのフィールドに打ち込んでおります。 僭越ながら、もし、誤りがありましたらご指摘いただけますと幸甚です。 よろしくお願い致します。
お礼
ありがとうございます!!! バッチリとはまりました。素晴らしいです!! 初心者を相手にしていただき恐縮です。 本当にありがとうございました。