まぁ、 A inner join B On A.ID like B.ID & '*' でも動くだろうけど、ミスによるバグがクッソ増えそうだし嫌だわ 0162NAME IS NULL2016/12/27(火) 14:28:17.14ID:??? わざわざ abczz じゃなく abdzz にしてる意図が気になるな 0163NAME IS NULL2016/12/27(火) 15:14:12.20ID:???>>162 likeしたときに abc-とabcde-だと被るからじゃない? 0164NAME IS NULL2016/12/27(火) 16:49:49.23ID:??? 苦しすぎるw 0165NAME IS NULL2016/12/27(火) 17:12:37.88ID:???>>157 > データベース設計を見直したいのですが、もうシステムが動いてしまっていて、 > 変更がちょっと難しい状態なのです、、、
正しいデータベース設計後、古いテーブルと同じ形式のViewを作ることができれば、 現行システムに影響を与えることなくデータベースの変更が可能。 0166NAME IS NULL2016/12/27(火) 19:31:30.63ID:???>>165 view賛成 ま、弊社の場合はviewだらけで訳が分からなくなってるけどね(笑 0167NAME IS NULL2016/12/27(火) 21:09:16.63ID:???>>165 ソレダ 0168NAME IS NULL2016/12/27(火) 21:13:35.26ID:???>>157 クエリ追加したいってことは、少なくとも何らかの変更/追加があるわけで そのうえでそのテーブルレイアウトで自分でクエリ書けないんだろ だったらテーブルレイアウト直すべきだと思うけどね ま、動いてて変えられんとかいう状況ならそのシステムに似たような事してるとこあるだろ
>>165-166 普通のDBMSならビューで逃げる手はあるけど、ACCESSって結構テーブルとクエリで扱い方に差があるからなぁ 0169NAME IS NULL2016/12/28(水) 06:24:05.12ID:???>>165 accessで困ってる初心者に追加可能な選択クエリとか書けるかっていう疑問はあるけど出来たらそれで良いかもね 0170NAME IS NULL2016/12/29(木) 07:14:51.28ID:??? viewじゃ更新できないカラムのsqlあったらどうすんの 0171NAME IS NULL2017/01/04(水) 10:49:09.60ID:??? トリガー作るしか無いかなあ 0172NAME IS NULL2017/01/29(日) 14:56:15.44ID:??? oracleのmergeについて質問です。 oracleは11gを使っています。
・説明 integerの列year、monthに年、月が書かれており、2017年4月〜2018年3月までの会計年度の行を取りたいのですが、そのようなことは可能でしょうか お願いします 0180NAME IS NULL2017/04/26(水) 21:37:32.38ID:??? select * from table where year*100+month between 201704 and 201803;
じゃだめか? 0181NAME IS NULL2017/04/26(水) 21:56:03.44ID:yyy4jyWJ 俺じゃダメか? 0182NAME IS NULL2017/04/26(水) 22:08:23.58ID:??? (year=2017 and month>=4) or (year=2018 and month<=3)でいいだろ 0183NAME IS NULL2017/04/26(水) 22:54:12.56ID:??? IIf(Month<4,Year-1,Year) AS 会計年度 見たいなカラム持ったクエリ定義しとけよ 01841832017/04/26(水) 22:57:19.84ID:??? あ、なぜかACCESSだと思ってたw 標準的なSQLならCASEでビューか
まあ、わかるだろ 0185NAME IS NULL2017/04/27(木) 04:56:49.99ID:???>>179 性能は知らん where make_date(year, month, 1) between '2017-04-01' and '2018-03-31' 0186NAME IS NULL2017/04/27(木) 07:07:55.94ID:???>>182 自分もこれだな 0187NAME IS NULL2017/04/27(木) 09:29:25.83ID:??? 日付を分割してintに入れる糞実装、未だに存在するのかよ 0188NAME IS NULL2017/04/27(木) 10:38:00.97ID:??? 日付じゃなくて必要なのが月までだからだろ 0189NAME IS NULL2017/04/27(木) 10:55:10.08ID:??? それでも /01 にしてdate型に突っ込むわ 0190NAME IS NULL2017/04/27(木) 12:24:41.45ID:??? どうでもいいけど言うならせめて糞設計だよね 実装てw 0191sage2017/04/27(木) 15:25:55.19ID:JuRKhktP 設計:年・月を保存する 実装:年・月を別カラムにする 0192NAME IS NULL2017/04/27(木) 15:38:14.45ID:??? 質問者への回答と、設計の改善提案は別だろうに 0193NAME IS NULL2017/04/27(木) 16:00:01.62ID:??? number(8)に日付いれるのが好きなフレンズもいるな 0194NAME IS NULL2017/04/27(木) 16:08:50.03ID:???>>193 難点は経過日数計算が大変な 0195NAME IS NULL2017/04/27(木) 17:08:47.17ID:??? 俺は >>180 支持だなぁ 速度的にも見た目的にも 0196NAME IS NULL2017/04/27(木) 18:52:05.48ID:???>>180 会計年度中も指定できるので非常に参考になりました
他の方法も含めご教示ありがとうございます 0197NAME IS NULL2017/04/27(木) 18:59:16.96ID:??? 年月を保持する要件で、データに意味を持たない日の情報が含まれるって、良いのでしょうか
バグを産む可能性を秘めてるような 0198NAME IS NULL2017/04/27(木) 19:31:38.84ID:???>>197 あり得ない月とかを突っ込める方が恐いわ 0199NAME IS NULL2017/04/27(木) 19:39:19.72ID:QZ3/RiVo>>198 そんなもんなんぼでもあるわwお前ビビりすぎw 0200NAME IS NULL2017/04/27(木) 19:54:14.57ID:??? バカが現れた 0201NAME IS NULL2017/04/27(木) 20:18:45.26ID:???>>199のレスの意味がわからなすぎる 0202NAME IS NULL2017/04/27(木) 20:19:31.22ID:??? バグというより、データベースに事実にない情報を含めるとか違和感が 0203NAME IS NULL2017/04/27(木) 20:44:47.72ID:??? numberでもバグを産む可能性を秘めてるし どっちのリスクをとるかだけじゃね 0204NAME IS NULL2017/04/27(木) 21:33:38.32ID:??? 年月のみを管理したいっていう場合に ・日付としての正当性は保証されるけど不要な日の情報を持つ ・日付としての正当性は保証されないけど不要な情報を持たない のどちらがいいか? って話でしょ 個人的にはデータの正当性の方を重視するかな 0205NAME IS NULL2017/04/28(金) 07:06:33.42ID:??? そして2017/4/1と2017/4/2など 同一年月で複数レコードできてしまうのでした 0206NAME IS NULL2017/04/28(金) 07:18:39.77ID:??? 年月情報をユニーク制約を保持する仕様で日付計算のためにdate使ってたら、皆さんはどう思いますか