- ベストアンサー
グループ化された中での複雑な処理
- データベーステーブルに格納された処理データを処理名ごとに集計する方法を教えてください。
- 処理状況が「完了」の場合は「完了」、処理状況が「未処理」の場合は「未処理」、処理状況に「実行中」が含まれる場合は「実行中」として抽出したいです。
- SQL文一発での抽出は難しいでしょうか?データベースはORACLEを使用しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 文字列に対してPHP上で一括置き換えしたい
DBにあるテーブルの指定されたカラム全てを文字列に対してPHP上で一括置き換えしたいです。 phpアドミン上でSQL文を使って UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列"); で実行したらうまくいくのですが、 これをPHP上で処理したいと考えてます。 require("godb.php");//DBにアクセス $sql ="UPDATE テーブル名 SET フィールド名 = REPLACE(フィールド名,"AAA","BBB")"; mysql_query($sql2); と実行してもうまくいきません。。。 これって、、、一個一個対象カラムをPHP上で取り出してから 処理をかけないといけないのでしょうか。。 アドバイスいただけたら幸いです。 よろしくお願い致します。
- ベストアンサー
- PHP
- 文字列連結を行いたい
以下のようなテーブル「TABLE_A」があります。 何とかSQLで抽出結果のようにしたいのですが、 方法が思いつきません。 【TABLE_A】 CODE | HIDUKE -----|------------ 1 | 2005/06/01 1 | 2005/06/02 1 | 2005/06/03 2 | 2005/06/01 2 | 2005/06/03 【抽出結果】 CODE | rst --------------------------------------------- 1 | 2005/06/01 2005/06/02 2005/06/03 2 | 2005/06/01 2005/06/03 (列「CODE」単位に列「HIDUKE」を文字列連結を行う) どなたかご教授ください。 よろしくお願いいたします。
- 締切済み
- Oracle
- 項目長変更後の処理について教えてください。
項目名:コード varchar (3) を "ALTER TABLE テーブル名 ALTER COLUMN コード varchar (4);"を実行し 項目名:コード varchar (4)へ変更したいと思っています。 そこで質問なんですが現在コード の内容が"001"のような3桁なのですがそれを"0001"のように4桁に変更したいのです。(頭に"0"を追加する。) (一見づつ読んで更新していく方法はわかりますがもう少しスマートに処理がしたいので) どういったSQL文を発行すれば良いのでしょうか? よろしくお願いします。
- ベストアンサー
- SQL Server
- Access2003 複雑な条件のデータ抽出
☆1つのテーブルで、フィールド[A]~[C]があり、文字および英数字のデータが混在しています。 (ただし、フィールド[C]には、空欄(Null)になっている場合があります) =========================================================== (テーブル(1)) No [A] [B] [C] [D] [E] [F] 1 111 X あ 2 222 X か 3 333 X さ 4 111 Y た 5 222 Y (Null) 6 333 Y は 7 222 Z ま 8 333 Z や 9 111 Z ら =========================================================== [課題] (1) テーブル(1)のフィールド[A]の値を参照し、「111」の場合は、 フィールド[C]の値を[D]へ抽出する([B]でグループ化) (2) 同様に、フィールド[A]の値を参照し、「222」の場合は、 フィールド[C]の値を[E]へ抽出する([B]でグループ化) (3) 同様に、フィールド[A]の値を参照し、「333」の場合は、 フィールド[C]の値を[F]へ抽出する([B]でグループ化) (4) 新規クエリにて、上記課題(1)~(3)の条件を指定して実行すると 以下の抽出結果が表示される =========================================================== [抽出結果] (テーブル(2)) No [B] [D] [E] [F] 1 X あ か さ 2 Y た (Null) は 3 Z ら ま や =========================================================== 別々のレコードにあるフィールド[C]の値を、条件に従い テーブル(2)のように1つのレコードにまとめたいのです。 大変恐縮ですが、私はSQLが書けないので、フィールド欄へ関数式を 入力して条件を指定しております。 できましたら、各フィールドへ入力する関数式を教えていただけると助かります。 また、関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- ACCESSクエリーで特定の項目を更新したい
ACCESSでテーブルから抽出したクエリーの特定の列だけに 1という数字をふりたいのですが、 update 抽出元のテーブル set 任意のセル = 1 where クエリー名 更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、 全てのテーブル列に1がふられます。 式が違うのでしょうか。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。 最終的には以下のイメージ update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 ;
- 締切済み
- その他MS Office製品
- SQLの処理結果について
お世話になります。 毎回気になっていることがあります。 MySQLでアップデートやインサートを含む一連の処理が正常に行われたかを確認する方法として現在クエリー実行結果がTrueかFalseで判定をしているのですが、これは正しい方法なのでしょうか? 例えばUPDATEをしたあとにphp内で別の処理をする場合、これらのすべての処理が完了したかを確認するし、途中で中断していたらその前の処理も行わない(取り消す)ということは可能なのでしょうか? 例: 1、テーブルからAという値をセレクト 2、A+1 3、テーブルAにアップデート 4、A+1 5、テーブルBに4の値を書き込み 3の処理が失敗している場合、5の処理は行わないというようのしたいのです。 毎回If分岐というのがよいのでしょうか? 複数回判定が必要な場合などぼ方法を教えていただけると幸いです。
- ベストアンサー
- PHP
- osqlからのsql実行方法について
Windows20003のSQL Server2000の環境で、あるテーブルのインデックスを指定して統計情報を更新する処理のバッチ化を考えており、osqlを使用すれば可能な所までは調査出来たのですが、、、 osqlから、SQL文をオプション"Q"にて実行する場合、例えばテーブル名 or インデックス名に「~」等の特殊文字を含む場合、そのまま実行するとシンタックスエラーとなり実行出来ませんでした。 テーブル名 or インデックス名に「~」等の特殊文字を含む場合の実行方法をどなたか御教授御願い出来ないでしょうか。。。 因みに、オプション"i"でsqlファイルを作成して実行しても、sql文に特殊文字があった場合はシンタックスエラーとなりました。 Query Analyzerでは、インデックス名を「"」囲み実行すれば、正常に処理される事は確認済みです。 【実行方法】 osql -E -S <サーバ名> -d <DB名> -Q "UPDATE STATISTICS <テーブル名> <インデックス名> WITH FULLSCAN"
- 締切済み
- SQL Server
- 絞込みする時のSQLの書き方
お世話になります。 絞込みする時のSQLの書き方について教えてください。 具体的には テーブル名tbl01,フィールド名f01,f02とした場合 1.f01もしくはf02にAという文字を含むレコードを抽出。 SQL = "select * from tbl01 where f01 like '%A%' or f02 like '%A%'" 2.続いて、1で抽出したデータからf01もしくはf02にBという文字を含むレコードを抽出するSQL文 SQL = ????? あくまでも、1と2を満たす条件を1つのSQL文で表す方法です。一旦、1の結果をワークテーブルに落とし、そこから2だけのSQL文を実行するわけではありません。
- ベストアンサー
- その他(データベース)
- 動的SQLの処理件数
PL/SQL中でSQL文を文字列に入れて、動的SQLを実行するんですが、その後にSQL%ROWCOUNTで処理件数ってとることってできますか? 自分のソースが問題なのか、動的SQLに原因があるのか悩んでいます。環境はOracle8iです。
- ベストアンサー
- Oracle
- ACCESSの更新クエリー活用方法の件(続き)
ID 商品 価格 備考 フラグ という列をもつテーブルがあるとします。 こちらは、 テーブル名:商品名 としています。 これにたいして選択クエリーを使って、特定の商品だけを クエリーで引っ張ってきています。 クエリー名:抽出 このクエリー名:抽出で引っ張ってきたデータにあるフラグの列に「更新クエリー」で 1の数値を入れたいのですが、 それは更新クエリーでどのようにSQLをせっていするかたちになりますか。 更新クエリー名:更新 update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 update 商品名 set フラグ = 1 where 抽出 ; 上記方法、更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、結果 全てのテーブル列に1がふられます。 式が違うのでしょうか。あくまでもクエリーで抽出されたものだけに 1をふりたいのですが。 http://okwave.jp/qa/q7278856.html > http://okwave.jp/qa/q7277790.html の#1・#2です。 #1に「選択クエリは作れますか?」と書いたのをほったらかしにして、続きの質問とは・・・。 具体的なテーブル名・列名を提示してないので、イメージで書いてあるんだから 回答を丸写ししちゃダメでしょ。 > #1です。ごめんなさい。もっとシンプルに考えれば良いです。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。
- ベストアンサー
- その他MS Office製品
お礼
decode関数で状況ごとのカウント数をとってそれを比較対照とすればこんなことが出来るんですね! 大変、勉強になりました。ありがとうございます!