• ベストアンサー

Accessで計算式を利用した在庫期間の算出方法について質問です。

OS XP Access ver.2003 ・在庫の保有期間を算出したいです。 ・元になるデータは入庫月と現在月で、形式はどちらも「yyyy/mm(年月)」です。  たとえば、入庫月「2008/12」現在月「2009/02」です。  上記の保有期間は「入庫月」と「現在月」の間に存在する期間を1月(ひとつき)とすると、「1」と算出させたいです。 ・入庫月と現在月はDBより抽出しておりデータ型は数値型で、テーブルのプロパティ変更はできません。 ・どのようにクエリを作成すれば、保有期間を算出できるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • riveron77
  • ベストアンサー率48% (180/370)
回答No.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と表示されます。

kamix
質問者

お礼

ありがとうございます!!! バッチリとはまりました。素晴らしいです!! 初心者を相手にしていただき恐縮です。 本当にありがとうございました。

その他の回答 (2)

noname#140971
noname#140971
回答No.2

チクット横から失礼! SELECT DateDiff("m",Format([入庫月],"yyyy/mm/01"),Format([現在月],"yyyy/mm/01"))-1 AS 保有期間 FROM tab1; とフォーマットされないと・・・。 長整数なようですから・・・。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

DateDiff("m", [入庫月] & "/01", [現在月] & "/01") - 1 as 保有期間 でいいのでは。

kamix
質問者

補足

アドバイス、ありがとうございます。試してみたのですが、指定の仕方が悪いせいか、うまくデータが出てきませんでした。具体的なアドバイスをいただいたにも関わらず、申し訳ございません。 たとえば、入庫月:200810 現在月:200902 の場合、アドバイスいただきました式ですと、保有期間が「1103」と出てきてしまいます。。。 計算式はクエリのフィールドに打ち込んでおります。 僭越ながら、もし、誤りがありましたらご指摘いただけますと幸甚です。 よろしくお願い致します。