「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:2
昨日:1
総数:2042
現在:5


データ抽出方法について

ページOpenOffice.org FAQの登録ページ
投稿者ziotlh
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2008-01-25 10:30:05 (金)
OSWinVista(HP)
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

データ抽出方法について質問します。

商品出荷情報をまとめて再利用しやすくするためにBaseを作成しております。

必要なテーブルを用意してリレーションで結び、

・クエリで情報一覧を表示させること、

・パラメータクエリをつかって任意の納品日・届け先・商品区分で絞り込むこと、

以上は出来るようになりました。


このクエリにおいて、

・任意の納品日間(例:20080105〜20080112)のデータを抽出→表示させる方法

・任意の納品日間において、複数レコードに記録されている商品出荷実績を集計して表示させる方法

以上2点を実現できないか悩んでおります。

どのような設計をすればよろしいでしょうか。


■構成状況

○テーブル(「※」…プライマリキー)

・出荷情報(※伝票番号、受注日、納品日、届先コード、商品コード、出荷数量、etc)

・顧客情報(※届先コード、届先名、電話番号、etc)

・商品情報(※商品コード、商品名、商品区分、価格、仕入先コード、etc)

・仕入先情報(※仕入先コード、仕入先名、電話番号、etc)

○クエリ

伝票番号・受注日・納品日・届先コード・届先名・商品コード・商品名・商品区分・価格・出荷数量…etc

○パラメータクエリ

納品日・届先コード・商品区分を入力して、データ絞込み


当方、初めてデータベースを作成しております。

様々な情報を検索しながら作成してきましたが、まだ理解できていない点が多々あります。

ぜひ皆様のお力をお借りしたいと思っておりますので、大変申し訳ありませんが宜しくお願い致します。


任意の納品日間の抽出

M.Kamataki (2008-01-25 16:15:21 (金))

とりあえずパラメータクエリを使う方法です。サンプルデータはfaq/4/830で使用したものを使っています。以下のように指定すると、任意の期間を指定できます。ポイントは、日付フィールドを2つ指定し、ひとつは表示のチェックをオフにすることです。

faq4_862_01.png

パラメータクエリでは、どうしても期限日を先に聞いてきます。この順番を逆にする方法はわかりませんでした。

なお、本日は時間切れなので、その他はいずれ(faq/4/830の内容も参考になるかも)。

任意の納品日間抽出について

ziotlh (2008-01-28 10:50:42 (月))

M.Kamataki

早速の御回答、ありがとうございます。
御教授頂いたとおりに条件指定してみたところ、データ抽出に成功しました。

その後、実験を繰り返してみましたが、
届先コード・商品区分の「あるいは」にそれぞれ別の行に「like:」を指定して、
全部・あるいはどちらかに入力を行って抽出させるようにしたいのですが、
どちらかに値を入力すると、全部のデータが出力されてしまいます。

これには何かコツがあるのでしょうか?

パラメータクエリについて

M.Kamataki (2008-01-29 12:15:06 (火))

以下のページに「LIKE:」を用いた例が取り上げられています。こちらも参考になると思います。

faq/3/339「パラメータクエリで、あいまい検索をする方法」

また、抽出したいのはAND検索(絞込み)、OR検索(条件指定のものすべて)、どちらでしょうか。AND検索の場合は、上記の日付指定の場合と同じように1つ目の条件と同じ行に2つ目の条件を設定します。この場合、同じフィールド名を設定する場合、上図のように2つ目のフィールド名は非表示します。

OR検索であれば、同じフィールド名で1つ目の条件を条件欄に、2つ目の条件を同じフィールド名のあるいは欄に指定できます。このあたりは、Accessと同じですので、Accessの解説書も役立ちます。

パラメータクエリについて

ziotlh (2008-01-29 16:51:53 (火))

M.Kamataki

参考ページの案内並びに御回答頂き、ありがとうございます。

データの絞込みをしたいので、AND検索を使用するのがベストかと考えています。
抽出条件として、「納品日間」に加えて「届先コード」「商品区分」の3つの要素で絞り込みたいのですが、
「%」や「_」を使っても絞り込めません。

現在のクエリの状態を添付しますので、一度ご覧頂けないでしょうか。

2008y01m29d_160209084.jpg

Re: パラメータクエリについて

M.Kamataki (2008-02-04 22:25:11 (月))

遅くなりました。この設定で問題ないと思います。

faq/4/830で用いたサンプルテーブルは以下です。
filebusiness_sample1.odb

このテーブルに下図の設定を行ったのが、「PQ_売上(日付店名品目指定)」クエリーです。サンプルのデータベースを利用する際は、オプションの[OpenOffice.org Base]−[データベース]でデータソースへ登録して置いてください。
faq4_862_02.png

このクエリーを起動して、たとえば「A開始日」に「2004/01/02」、「B終了日」に「2004/01/05」、「C店名」に「新町店」、「D品名」に「医薬品」で問題なく抽出できます。このことからもパラメータクエリの設定には問題がないと思います。なお、表示パラメータの順番は頭にアルファベットを付加することで制御しました。

本来は、正規化してテーブル間のリレーションも設定しないと、検証にならないので、いすれ正規化したテーブルでも試してみます。もしくは、サンプルをご用意ください。

パラメータクエリでは、正規表現に「*?」ではなく「%_」を使うのは、おわかりですよね。

無題

ziotlh (2008-02-11 14:50:30 (月))

M.Kamataki

お返事が遅くなって申し訳ありません。
いつもお力を貸して頂き、ありがとうございます。

提示して頂いたサンプルを確認して、表示パラメータの順番制御方法やクエリーの設定方法を学ばせて頂きました。
しかし、同じように設定してもやはり私が作ったクエリーでは上手く抽出してくれないようです。

パラメータクエリでの正規表現については、
Baseのfaq/3/339「あいまい検索」にて学ばせて頂きました。
理解はしているつもりなのですが、「%_」を使っても指定した通りに抽出されません。
やはり、私のクエリーに問題があるのでしょうか。


すみませんが、仕事が多忙につき、誠に勝手ながら返信が遅くなっております。
時間を見つけて、私が作っているテーブルのサンプルを提示したいと思いますので、その時は一度拝見して頂けます様お願い申し上げます。

パラメータクエリについて

ziotlh (2008-02-22 09:55:28 (金))

M.Kamataki
お返事が遅くなってしまい、大変申し訳ありません。

上記で提示して頂いたサンプルを元に、作成中のデータをもう一度見直した結果、パラメータクエリの設定と抽出は成功しました。
テーブルに使っている元データを細かく見直して、セルの設定等全て当たったところ、使用できるようになりました。

これで、質問の一つは解決致しました。
ありがとうございます。



もう一つ、私が最初に質問させて頂いた、
・任意の納品日間において、複数レコードに記録されている商品出荷実績を集計して表示させる方法
について、今後お力をお借りできたらと思っております。

まだまだ知識のない私ですが、SQLポケットリファレンスを買って研究を始めました。
進展がありましたらここに書き込んで行きたいと思いますので、どうぞ宜しくお願い致します。

SQLならこんな感じでよいのでしょうか?

amano (2008-02-22 18:18:31 (金))

SELECT <group>,COUNT(<record>)
FROM <table>
WHERE(<condition>)
GROUP BY <group>;

上記は件数のカウントです。

<group>、<record>はカラム名、<table>はテーブル名を指定して下さい。
COUNT() を SUM()に換えると<group>ごとの数値の合計になります。
さらに<group>に関する条件をはずすと数値の総計になります。
納品期間の条件は等号不等号を使えると思います。

添附のデータを見たわけでなく、一般的なSQLの構文のつもりです。

無題

ziotlh (2008-03-06 18:43:50 (木))

>amano様
お返事が遅くなってしまい、大変申し訳ありませんでした。
ご教授頂き、ありがとうございます。
教えて頂いたとおりの構文を試しているのですが、私の知識不足が原因でまだ実現できておりません。
「COUNT」の記述が上手くいっていないのだと思います。

近日中にサンプルもしくは画像を提示しますので、大変申し訳ありませんがご教授頂けないでしょうか。
お手数をおかけ致しますが、ぜひとも宜しくお願い致します。

サンプル添付

ziotlh (2008-03-07 10:55:08 (金))

現在、私が作成しているデータベースとほぼ同じ状態のサンプルを添付いたします。
まだ洗練されていない部分があるかとは思いますが、ここに任意の納品日間における商品別出荷実績をまとめられるようなクエリを作成したいと考えています。

皆様、どうかお力を貸してください。
宜しくお願い致します。

さっそく、見てみようと思ったのですが、

amano (2008-03-07 11:34:50 (金))

私の環境に不備があるようでbaseがフリーズしてしまいます。
他のOOoのアプリケーションはOKなのですが。
そんなわけで済みません、どなたかお願いします。

データ型が間違ってました

M.Kamataki (2008-03-07 18:32:48 (金))

計算を行いたいのは、原価合計、納価合計などだと思いますが、データ型が「テキスト[VARCHAR]」となっていました。ここは数値型である「数値[NUMRIC]」で設定しないと計算できません。

なお、テーブルのデータ型を変更する際、そのままテーブルの編集でデータ型を書き換えてしまうとデータがうまく引き継げません。いったんCalcを経由し、さらにテーブルコピーの機能を利用して新しいテーブルを作成するようにしましょう。

お名前:
題名:


添付ファイル: filesampleDB1a.odb 981件 [詳細] filefaq4_862_02.png 344件 [詳細] filebusiness_sample1.odb 1056件 [詳細] file2008y01m29d_160209084.jpg 653件 [詳細] filefaq4_862_01.png 355件 [詳細]