0266神 ◆YDp73vGOso3d 2018/04/15(日) 17:01:53.04ID:Bs6Qpy/T おいおいおいおいouter joinとかいう初心者以前の質問には答えて 俺の質問には答えんのかい お前らほんと捻くれてるな これだからSEとかいうオタク共はいじめたくなるんだよなあ 0267NAME IS NULL2018/04/15(日) 17:33:52.27ID:???>>58 専門学生の宿題だろこれ? 0268NAME IS NULL2018/04/19(木) 00:19:53.73ID:ACyU9sdk>>266 答えられんのはプログラマーとかゆうコーダーだろ SEとゆうのは俺様みたいな有能のことたぜボーイ! 0269NAME IS NULL2018/04/19(木) 01:05:53.36ID:pgNamYVa>>268 you? 0270NAME IS NULL2018/04/20(金) 20:42:22.38ID:cUph+NAS>>269 なんや?SE様に何か用か? 0271NAME IS NULL2018/04/28(土) 20:00:00.97ID:??? テーブル分割してidなどで紐付けるのが基本なのは分かるんですけど この値がどのidなのか毎回自分でテーブル確認してinsertするのが大変で困ってます リストボックスみたいなので'ゆうちょ'を選んだら(bank_id=)3みたいに支援してくれる機能ってSQLでできませんか? RDBMSはMySQLでLinuxのターミナル使ってます 0272NAME IS NULL2018/04/28(土) 21:05:32.03ID:??? それはSQLではなくWeb画面等使って選択させれば良いだろう 0273NAME IS NULL2018/04/28(土) 21:36:58.41ID:f64A+t1T>>271 SQLの話ではないな。 0274NAME IS NULL2018/04/28(土) 22:38:37.03ID:??? ACCESSでも使ってろ 0275NAME IS NULL2018/04/29(日) 03:58:48.45ID:uDICrjO7>>271 IDを使わず銀行名でやってみてください。
自分が経験しなければ、なぜそうした方がいいのか、わかりませんよ。 0276NAME IS NULL2018/04/29(日) 10:54:53.31ID:??? >テーブル分割してidなどで紐付けるのが基本なのは分かるんですけど
それは分かってるっていうよりメリットデメリット理解しないまま鵜呑みにしてるだけだよね。 どうせ鵜呑みにするなら教科書通りのリレーショナルDB設計から入ればいいのに。 0277NAME IS NULL2018/04/29(日) 11:08:37.04ID:??? 更新時のレコード件数を減らしたり情報の集約・一元化がメリットですよね。ざっくりとは理解してるつもりです。 ただターミナルからSQLで複数のレコードを追加するには自力でテーブル確認する必要あるのが使いづらいなと思って 0278NAME IS NULL2018/04/29(日) 11:34:58.17ID:??? select bank_id from m_bank where bank_name = ’ゆうちょ’
こんなサブクェリーを追加SQLに埋め込む 0279NAME IS NULL2018/04/29(日) 12:34:02.47ID:???>>278 こういうときに副問合せ使うんですね、使いやすそうで凄く良さそう。 早速使ってみます。 ありがとうございます。 0280NAME IS NULL2018/04/29(日) 13:38:14.58ID:uDICrjO7 マスタテーブルではないのか? 0281NAME IS NULL2018/04/29(日) 14:23:08.00ID:??? >複数のレコードを追加するには自力でテーブル確認する必要ある
これの意味が判らん 0282NAME IS NULL2018/04/29(日) 18:36:41.80ID:??? 説明下手ですみません。 初心者なのですごく初歩的な質問でした。 取り敢えずサブクエリで解決しましたが一応
declare cur cursor for select No,A from t order by No desc; declare exit handler for not found set done = 0; set done = 1; set _flag = 0; set _cnt = 0;
open cur; while done do fetch cur into _no, _a; if _a = 1 and _no > 0 then update t set b = 0 where No = _no + 1; set _cnt = _cnt + 1; else update t set b = _cnt where No = _no + 1; set _cnt = 0; end if; end while;
if _a = 1 then update t set b = 0 where No = _no; else update t set b = _cnt where No = _no; end if; close cur; end; 0324NAME IS NULL2018/05/13(日) 05:37:55.80ID:???>>322 ありがとうございます。 教えていただいたキーワードをもとに 調べてみます。
>>323 ありがとうございます。 今はPCをさわれる環境にないので月曜日に試してみたいと思います。 0325NAME IS NULL2018/05/13(日) 07:21:58.29ID:???>>322 再帰やストアドなんて要らんでしょ >>318 の結果を得たいだけなら
select T1.NO, T1.A, ( select min(T3.NO) as NO from T as T3 where T1.NO < T3.NO and T1.A <> T3.A ) - T1.NO as [連続数] from T as T1 inner join T as T2 on T1.NO - 1 = T2.NO and T1.a <> T2.a where T1.A = 1
で十分でしょ (わかると思うけど表名は T ね) 0326NAME IS NULL2018/05/13(日) 09:51:48.44ID:???>>325 ありがとうございます。 試してみます。 0327NAME IS NULL2018/05/13(日) 11:09:02.63ID:??? 再帰SQLでやるならこんな感じ 最初に1がでたところで表示したいとのことなので レコードの最後から加算積み上げてる 半角でレスしようとしたらインジョクションかなんかでエラーになった ため全角に変換してます
よろしくお願いします。 0335NAME IS NULL2018/05/17(木) 22:21:17.05ID:???>>334 で何をやりたいかはだいたいわかったけど (たぶん STARTしてからSTOPするまで KEKKAを1にすればよいはず) 行順を保持しつつ状態遷移させるのって普通のSQLでできるのだろうか? 0336NAME IS NULL2018/05/17(木) 22:27:50.57ID:??? START、START、STOP、STOPって並びになったときはどうすんの? 0337NAME IS NULL2018/05/17(木) 22:28:51.14ID:??? 334見てなかった、すまん 0338NAME IS NULL2018/05/17(木) 22:51:31.55ID:???>>334 スタートがあったら1加算ストップがあったら1減算する累積計算すればいいじゃねえ select no sum( start + end * -1) as kekka from t as m left join t as s on t.no<=m.no group by no 0339NAME IS NULL2018/05/18(金) 01:30:58.99ID:???>>338 いろいろ細かいミスは置いといて、それSTOPの行が1にならんだろ
>>329 select NO,START,STOP, (select isnull(sum(START),0) from t where t.NO <= m.NO)- (select isnull(sum(STOP),0) from t where t.NO < m.NO) KEKKA from t m とかで出来んじゃね 0340NAME IS NULL2018/05/18(金) 10:08:58.76ID:??? ありがとうございます。 皆さんに教えていただいた方法を試していますが、うまく行きそうです。 ありがとうございました。 0341NAME IS NULL2018/05/18(金) 17:13:55.57ID:??? ・DBMS名とバージョン 10.1.16-MariaDB
MySQLはよく知らんけど select code, date_format(bb_date, '%Y/%d'), sum( case baibai when 1 then -suuryou when 3 then suuryou end ) from data_pool group by code, date_format(bb_date, '%Y/%d') とかで行けるんじゃね? 0348NAME IS NULL2018/05/29(火) 14:04:09.72ID:??? date_format の所、%Y/%m だな。 2カ所直せば大丈夫だろう 03493442018/05/29(火) 14:07:06.19ID:??? 重ね重ねの間違いお恥ずかしいw 有難うございます %d を %m にして欲しい結果を得ることが出来ました。感謝 0350NAME IS NULL2018/05/31(木) 20:59:32.14ID:??? 毎日の果物の価格を記録するデータベースを作りたいんですがどういうテーブルをつくったらいいですか?とりあえずitemsテーブルに果物の種類とidのカラムを作ります。 毎日の価格はどういうテーブルにしたらいいですか? 0351NAME IS NULL2018/05/31(木) 21:13:08.20ID:???>>350