t仕入というテーブルの複数の行から値を持ってくるSQL文を考えています
Microsoft Accessでシステムを組みデータ側はmysqlを動かしてODBC接続しております。
以下のようなテーブルがありまして
並びというフィールドに値を挿入したいと考えています。
日付|仕入先id|商品ID|価格|並び
|:--|:--:|--:|
2/2|1|1|600|
2/2|2|1|700|
2/2|3|1|700|
2/2|4|1|500|
2/2|5|1|300|
2/2|6|1|100|
2/1|5|2|800|
2/1|4|2|900|
2/1|3|2|800|
2/1|2|2|900|
2/1|1|2|800|
2/1|6|2|900|
最終的に以下のようなテーブルにしたいと思っていま
す
日付|仕入先id|商品ID|価格|並び
|:--|:--:|--:|
2/2|1|1|600|677531
2/2|2|1|700|677531
2/2|3|1|700|677531
2/2|4|1|500|677531
2/2|5|1|300|677531
2/2|6|1|100|677531
2/1|5|2|800|293989
2/1|4|2|900|293989
2/1|3|2|300|293989
2/1|2|2|900|293989
2/1|1|2|200|293989
2/1|6|2|900|293989
並びカラムが必要な理由は行数が多く100万行ほどあり更新頻度は1日一回で問い合わせの頻度は1日に100回ほどでいろいろな条件が組み合わされるため一度テーブルを作ってしまってからSELECTクエリなどで動かしたほうが動作が早いと思ったのが理由です。
条件というのは例えば日付と仕入れ先idで絞って表示した場合に1行で6仕入先分の価格の目安がわかるので直感的に見やすい。
並びカラムで検索することによって6仕入先の価格変動の傾向が見やすいといったところを考えています。
並びカラムのルールは日付と商品id別で絞り
仕入先id順で並べた価格の
百の位を左から並べていきたいと思っています
価格は必ず100円以上999円以下になっています。
仕入れIDは1~6までが必ず1日1商品につき一つずつ存在します。
商品IDは日々1000種類ほどあります
update文をどのように記述したらいいでしょうか?
拙い説明文で申し訳ありませんが
よろしくお願いいたします。
GROUP_CONCATでも表示上は実現できそうでしたが
追加した後変更されるデータではないので
毎回select問い合わせのたびに処理を実行するより
テーブルに残したいと考えています。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー