nora1962 の回答履歴
- oracleでwith句の結果を使ってupdate
oracleでwith句の結果を使って外部結合?でupdateしたいのですが 上手くいきません。 oracleでは無理なのでしょうか。 よろしくお願いいたします、。 /*---------- with v1 as ( select row_number() over(PARTITION BY ・・・ ORDER BY ・・・) as rnum ,no ,col1 ,・・・ from ・・・ ) update ( select A.col1 A_COL, v1.col2 B_COL from table1 A inner join table2 B on A.cd1=B.cd1 inner join v1 on A.no=v1.no where v1.rnum=1 and ・・・ ) set A_COL=B_COL ; ----------*/ と書いたのですが、 実際に実行してみると、 カッコ「(」、「)」がないとか、 selectが必要とか, A_COLやB_COLが無効ですとか、 となります。 どこが悪いのでしょうか。 oracleではupdateでwithは使えないのでしょうか。 よろしくお願いします。
- MySQLがログインできません。
MySQLのログインできなくて困っています。 Macターミナルにて「 mysql -u 」と入力して「-bash: mysql: command not found」と返ってきました。 この時点でコマンドを探すことができない?と返ってきたと思うので変だなと思っていたのですが 次に「cd /Applications/XAMPP/bin」をダメ元で入力(実際はMAMPですがダメ元です。) 次に「ls」コマンドを入力したら GET myisamlog HEAD myisampack POST mysql... と出て来たのですが、これらの動作には因果関係がないように思えるのですがログインできてるのでしょうか? 返信はピンポイントで構いません。お答え願えればと思います。
- 締切済み
- MySQL
- shin11shin
- 回答数1
- MYSQLで期間指定の条件式の書き方教えてください
毎週火曜日と木曜日に定期巡回便が出ます。 まとめて前準備しておくお荷物を抽出したいのですが 日付の条件抽出の仕方で教えてください たとえば・・・Excelのワークシート関数だと A1=2016/11/3 とすると A1+CHOOSE(WEEKDAY(A1,1),2,1,0,1,0,4,3),"m/d" から A1+CHOOSE(WEEKDAY(A1,1),3,2,1,5,4,5,4),"m/d" までという数式になります。 上の例だと11/3木に用意しておくのは11/3木から11/7月までの品 というふうに条件指定してみたいのですが これをMYSQLのwhere句側でSQL文で書くと、どうなりますでしょうか? where 指定日 between 条件式1 and 条件式2 の条件式の書き方がわかりません。 どなたか教えていただけますでしょうか?
- 締切済み
- MySQL
- Passerby01
- 回答数1
- pl/sql ストアドからレコードセットを返す
カーソルを使わずに結果セットを返す方法を知りたいです。 戻り値または、引数で返してもかまいません。 また、同様に動的SQLの結果を返す場合を教えてください。 ※結果セットは複数行の場合です。
- テーブルのデータを利用して抽出したい
テーブル内のキーワードに合致するデータを抽出するクエリを作成したいです。 テーブル1には"商品名"という項目があるリストがある。 テーブル2には"除外キーワード"のみのリスト。 テーブル2の"除外キーワード"を使用してテーブル1の商品名に該当するデータを抽出。 部分一致での抽出を希望します。 除外キーワードは徐々に増えていきます。
- ベストアンサー
- その他(データベース)
- ururun_abc
- 回答数2
- PostgreSQLの SQL
PostgreSQLのSQLで空文字判定する場合 =="" , <> "" , !=""ではなく IS NULLで良いのでしょうか? IS NULLは、空の場合とnullの場合の2つを判定しているのでしょうか
- ベストアンサー
- PostgreSQL
- head492
- 回答数1
- SQLに関して
教えて下さい。 ある在庫システムを構築していますが、その中で、滞留在庫(6ヶ月動きがない在庫)を抽出 しようと考えています。 関係しそうなテーブルとしては、 品目マスタ 仕入データ 発注データ 在庫日次データ ※1 というテーブルが存在します。 ※1 在庫日次データというのは、仕入、発注、移動、出荷等のデータが、それらのアクションと 同時にデータとしてそのテーブルに発生します。 イメージ的には、仕入データが発生した日から、在庫日次データにデータがないもをピックアップ すれば良いかと思われますが、どのようなSQLを書けば良いでしょうか? 初歩的な質問で申し訳ありませんが、教えて下さい。 よろしくお願いします。
- ベストアンサー
- Oracle
- asamix_000
- 回答数3
- MySQLでCSV出力したい
MySQL初心者です。 テーブルから抽出したデータを CSVにてエクスポートしたいです。 SELECT * FROM tbl_employee INTO OUTFILE "/ttt.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\r\n"; これだとフィールド名がエクスポートされないという現象が起こります。 また、エクスポート先なのですが、 デスクトップとかにしたいのですが、 設定の仕方がよくわかりません。 ネットで調べたのですが、限界でした。 まだまだ初心者なもので よろしくお願いいたします
- SQLServer T-SQL テーブルのJOIN
こんにちは。 テーブル"TABLE_A"、"TABLE_B"があり、 各々のテーブルにカラム"COL"があります。 カラム"COL"にインデックスを作成しています。 テーブル"TABLE_A"、"TABLE_B"をカラム"COL"で結合 する際の演算子にLIKE文を用いています。"TABLE_B"の カラム"COL"に"%"を付加していますが、これが原因で "COL"のインデックスが効きません。どのようにすれば LIKE検索でインデックスを有効にすることができるの でしょうか? SELECT * FROM TABLE_A INNER JOIN TABLE_B ON TABLE_A.COL LIKE TABLE_B.COL+'%'
- ベストアンサー
- SQL Server
- NoMusicNoLife49
- 回答数2
- 「順位データ」の持ち方について教えてください
■環境 ・PHP+MySQL ■質問 ・「順位データ」の持ち方について教えてください ・「順位データ」はデータベース側で保存するものでしょうか? ・あるいはPHPで都度処理するのでしょうか? ・ケースバイケース? ■データベース側で保存する場合 ・「通常データ」だと、該当レコードを「挿入」もしくは「更新」すればそれで済みますが、「順位データ」だと1件データを「挿入」もしくは「更新」するだけで、全レコードに影響を及ぼす可能性があります ・この場合、1レコードでもデータを変更したら、全レコードに変更処理をかけるしかないのでしょうか?
- SQLの質問です。
下記のようなテーブルで、 レベル4以下で点数が入力されているMAXの行を持ってくるにはどうしたらよいでしょうか?よろしくお願いいたします。 職員番号 氏名 レベル 点数 01000 山田 花子 4 01000 山田 花子 3 40 01000 山田 花子 2 30 01000 山田 花子 1 20 01100 田中 あああ 4 10 01100 田中 あああ 3 20 01100 田中 あああ 2 30 01100 田中 あああ 1 40 01200 佐藤 あああ 4 01200 佐藤 あああ 3 01200 佐藤 あああ 2 30 01200 佐藤 あああ 1 40 この場合欲しい結果は 職員番号01000の人は点数40点の行、01100の人は点数10点の行、01200の人は点数30点の行 3行を表示したいです。
- テーブルで一番古いレコードだけをSELECTしたい
テーブルで一番古いレコードだけをSELECTしたいのですが、どうすれば良いでしょうか? ■背景 ・テーブルからデータを取得しようと思ったら、「id」及び「autoincrement」に該当するカラムがありませんでした ・日付に該当するカラムもありません ・「phpMyAdmin」で確認すると、いつも同じ並び順で表示されるので、格納したレコード順で表示されているのではないかと思いました ■質問 ・この時、そのテーブルで一番古いレコードだけをSELECTしたいのですが、どうすれば良いでしょうか? ・where?
- テーブル設計について
二つのテーブルの行数は同じとします 1行に10カラム以上あるテーブルから1カラムだけ取得するのと idとvoteだけの2カラムで作ったテーブルから1カラムだけ取得する場合の処理スピードは速くなりますか? updateで更新する時のスピードもカラム数が多いと違いが出ますか? よろしくお願いします sprintf("SELECT vote FROM hoge WHERE id=%d", $id );
- SQLの高速化の方法について
自分ではすぐに浮かばないのですが、結構急ぎのことなのでお時間がある方でご存知の方がいらしたら教えて下さると嬉しいです。なので、途中で解決していたり質問を途中で消しているかもしれませんがよろしくお願いします。 SQLで自分が書いた文を高速化したいのですが、一般的にこうすると遅いからこうする方が良いというのがあれば教えてください。 一応自分でも調べててWHERE句では結合よりも先に条件を記載する方が良いとか書いてました。 あと、IN演算子がちょっと問題な演算子ということが。 確かにSQL文を書いているソースではいくつかSELECT文があって、それぞれでIN演算子を使っています。 調べてるとIN演算子をEXISTS演算子に書き換える方が良くなるとあったのですがEXISTS演算子はカッコ内で再度SELECT文を作るんですよね? 今使っているIN演算子では、ほぼカッコ内に数字のいくつかの候補があってそこから該当する数字を選ばれるという形の方。 WHERE AAA IN ('122','244','366') といった形です。 あるSELECT文でIN演算子を使って絞った値データを次のSELECT分のIN演算子の値候補として使用しています。 つまり、上記のような文122と244のデータが見つかってSELECTされると次のSELECT文のIN演算子の候補として122と244が入るという形です。 ちなみにこの処理のメインとなるテーブルでは一つの項目の値を木構造で分けているのでその辺りも考えないといけません。 以前、こちらのサイトで教えて貰った方法で動いている GROUP BY AA.A1 HAVING COUNT(*) >= 0 といった処理も重くしてしまうのでしょうか?
- select insert 句
自サーバDBでselectしたデータをそのまま他サーバDBへ直接insert出来ますか? 出来るんであればその方法を教えてください。
- VBの記述方法はVBAと同じなのですか?
これからVisual Studio 2012を導入してVBA(Excel)でやっていたことをVSでやりたいのですが 基本的にVSのVisual Basicの記述方法はVBAと同じなのでしょうか? 例えばネットのあるサイトをログインして遷移後のhtmlを取得するには、VBAだと以下のように書きます。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://xxxxxx/login.aspx" objIE.document.All.txt_userid.Value = xxx 'ユーザー名 objIE.document.All.txt_pass.Value = xxx 'パスワード objIE.document.All.btn_login.Click '送信結果のページ読み込みが終わるまでループ While (objIE.Busy = True Or objIE.ReadyState <> 4) DoEvents Wend '表示したページの<BODY>部のHTMLを取得 Dim htmlBody As String htmlBody = objIE.Document.Body.InnerHtml C#で記述しようか、慣れているVBAと似ているVBで書こうか悩んでいます。 どうぞよろしくお願い致します。
- ベストアンサー
- Visual Basic
- suffre
- 回答数1
- MySQLの抽出について
MySQLの抽出時間を短縮できないため困っております productテーブル product_id,test_id 86009,'10701,8545' 84334,'12610,9505,13326,9024,1020747,6787,3737,5266' 85078,'1001182,1002129,1003064' 84082,'24723,23417,1002357,1000683,1002258,1003501,25426' 85072,'1008167,1007194,1006309,5240,1009347,30212' 85071,'28079,1007881,1000733,1002367,27836,25141,29863' 86014,'23988,17802,26440,1005928,22668,28372,28135' 83762,'1010127,1010436,1011554,1013949,1014307' test_masterテーブル id,initial_kana 10701,'あ' 21122,'あ' 1002129,'あ' 1002357,'い' 2291,'い' 29863,'い' 23988,'う' 1010436,'え' 22299,'え' 上記の2つのテーブルがあります。 内容は下記のようになります。 productテーブルの product_id:一意のID test_id:test_masterテーブルの一意のID(test_master.id)のカンマ区切りで接続した文字列 実際のレコード数:86,688件 test_masterテーブルの id:一意のID initial_kana:全角一文字のみ 実際のレコード数:14,602件 【やりたいこと】 (1)test_masterテーブルのtest_master.initial_kanaカラムに対応する文字(例えば'あ')に対応するtest_master.idを取得する (2)(1)で取得したtest_master.id群を元に、productテーブルのtest_idに 該当する(product.test_id文字列の中にtest_master.idが入っているもの)もののproduct.product_idを取得する ということをしたいのです。 (3)例えば、test_master.initial_kana='あ'を取得したい場合、productテーブルのproduct.product_id=86009,85078が取得される 私の作ったSQLは下記のものになります limitとoffsetに関しては、都合上消すことはできません。 ・test_masterテーブルから、test_master.initial_kana='あ'のものを抽出 ・productテーブルから、product.test_idがNULLでないものを抽出 ・上記二つから、FIND_IN_SETで、test_master.idに該当するproduct.test_idの文字列の中から抽出 --------------------------------------------------------- select p.product_id as product_id, am.id as id from ( select id from test_master where initial_kana = 'あ' ) as am, ( select product_id,test_id from product where test_id is not null ) p WHERE ( FIND_IN_SET(am.id, p.test_id)!=0 ) group by am.id limit 20 offset 0 --------------------------------------------------------- このSQLを実行すると件数が多いためか 30秒ほど掛かってしまい実用に耐えられない状況です。 すみませんが、SQLに詳しい方がいらっしゃいましたら ご教授をお願いできますでしょうか。 検索が5秒くらいまで短縮できれば万々歳なのですが… よろしくお願いいたします
- 締切済み
- MySQL
- imonikai4649
- 回答数3
- MySQL 予約語名で、カラム作成できるでしょうか
■質問 ・MySQL予約語名でもカラムを作成できるのでしょうか? ■背景 ・文法エラーSQL文の原因を調べると、どうやら予約語を利用したためだと分かりました ・予約語と知っていたら初めから利用しなかったのですが、その名前で普通にカラムを作成できたので、てっきり使えるものだと思い込んでしまいました ■知りたいこと ・予約語を回避するには、ここをチェックするしかないのでしょうか? ▽MySQL 5.1 リファレンスマニュアル :: 8.3 MySQLでの予約語の扱い http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html ・予約語による影響を受けるのはどんな時?(CREATEは関係ない?) 予約語によって異なる?
- MySQLで特定のグループの上位3件を取得したい。
ちょっと壁に当たったので、わかる範囲でお答え頂きたいのですが、 以下のようなテーブルがあったとします。 id user price date 1 A 1000 2013/5/31 2 A 1200 2013/6/1 3 B 1000 2013/5/20 4 A 1500 2013/5/12 5 C 1300 2013/5/31 6 C 1400 2013/5/14 7 C 1000 2013/5/6 8 B 1100 2013/5/24 9 B 1200 2013/5/30 10 B 1100 2013/5/4 11 A 1800 2013/4/12 12 C 900 2013/4/6 ・・・ 次に取得したいのは、 A 1200 2013/6/1 A 1000 2013/5/31 A 1500 2013/5/12 C 1300 2013/5/31 C 1400 2013/5/14 C 1000 2013/5/6 B 1200 2013/5/30 B 1100 2013/5/24 B 1000 2013/5/20 このようなデータなのですが、 条件: 1.userでグループ化したうちの日付降順で並べる 2.そのuserのデータの中で、日付降順で並べる 3.userのデータが複数あっても、取得するのは新しいものから3件のみ この条件を満たすSQL文はどのように記述すればよいか、お知恵をお貸し下さい。 よろしくお願いします。
- Oracle 11g コミットのタイミングについて
コミットされるタイミングに関して。。。 ----------------------------------------------------- REDOログバッファがREDOログファイルに書き出されるタイミングは ・コミットした時 ・3秒毎 ・REDOログバッファが3分の1になった時 ・DBWnがデータファイルに書込むとき ------------------------------------------------------- 上記の認識ですが、この中の3秒毎と言うのが理解できません。 こちらで試してみた結果がこちらです。 プロンプト1にて (1)sql接続 (2)name列確認 結果⇒test01 (3)name列更新 結果⇒test02 (4)コミットせずに3秒以上経過。 プロンプト2にて (5)sql接続 (6)name列確認 結果⇒test01 となります。 3秒毎にコミットされていない!! (4)でコミットをしてやると、(6)での結果はtest02になります。 3秒毎とはどういったことなのでしょうか。 よろしくおねがいいたします。