• 締切済み

SQLServerからエクセルにデータを抽出する方法

お世話になります。 会社でSQLServerを使っており、その中から必要なデータのみエクセルで取り出そうと考えていますがどうもうまくいきません。 日付(datetime型)を含むデータの中から今日の分のデータだけピボットテーブルでエクセルに取り出す場合、MSクエリを使って抽出するときの方法を教えてください。(getdate()を使ってみましたが”getdateは組み込み関数名として認識されません”とエラーが出ます。 よろしくお願いします。

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.3

他で使うときに、ODBCのデータソース選択画面で「クエリウィザードを使ってクエリを作成/編集する」というチェックをオフにすると、いきなりMS Queryに飛ぶからエラーにはならないはずです。 クエリウィザードはODBC(というかMicrosoft OLE DB Provider)が書式を評価するので、ODBC書式({ts 'yyyy-mm-dd 00:00:00'})しかサポートしてくれていないということかと思います。 GETDATEに限らず、SQL Server独自の関数はつかえないです。 ここはどうしようもないところで、クエリウィザード以外のところで対応するように考えていくべきかと。

nyaokin
質問者

お礼

エラーは出なくなったのでこれでやってみたいと思います。 >ここはどうしようもないところで、クエリウィザード以外のところで対応するように考えていくべきかと。 勉強してみます。 どうもありがとうございました。

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

MS Queryのクエリウィザードの抽出条件指定画面ではGETDATE()はつかえませんが、ウィザードの最後で「データの表示またはクエリの編集を行う」を選び、MS Queryの画面を開けば、そこではGETDATE()は使えます。以下のいずれかの方法で。 1)抽出条件フィールドの「値」に登録する 2)SQLボタンを押して、生成されているSQL文の末尾にWHERE条件を追加する なお、GETDATE()は時刻を持っているので、指定するときは以下のようにしてください。 CONVERT(datetime,CONVERT(varchar,GETDATE(),111))

nyaokin
質問者

補足

ありがとうございます、できました ただクエリを保存して別で使うとやっぱりエラーが出るので、日付の指定はせずに保存して使うときに指定してやることにします。 ウィザードではできずにクエリ編集ではできるというのはなにか不便な気もしますが他にもこのようなことがあるのでしょうか? 今後使っていく上で参考のために教えてください。

  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.1

EXCEL2007の場合、「データ」タブの「その他のデータソース」で「SQL SERVER」を選択すれば、ピボットテーブルレポートでEXCELにデータをインポートできます。 EXCEL2003以前の場合、「データ」メニューの「ピボットテーブルとピボットグラフ レポート」を選択し、表示される「ピボットテーブル・ウィザード 1/3」で、「外部のデータベース」を選択し、データのある場所を指定すれば、MSクエリウィザードが起動します。そこでデータを抽出します。 そして、抽出したデータでピボットテーブルを作成し、最後に今日の日付でデータを絞り込みます。

nyaokin
質問者

お礼

ご回答ありがとうございます。最近勉強し始めたのですが、何とかそこまではできました、ただ毎回今日の日付で絞り込むのも面倒で今後データも増えるので勝手に今日の分だけ取り出せないかなと考えていました。

関連するQ&A