以下に記述する条件でUPDATEしたいのですが、
どのようなSQLを使えばよいか教えて頂けないでしょうか、
いろいろ試してみたのですがうまくいきません。
よろしくお願い致します。
*UPDATE前
「バイト給与テーブル」
ユーザー,作業日,ステータス,日給,締め日,支払日
Aさん,06/03,支払済,3000,06/30,07/10
Aさん,06/15,支払済,7000,06/30,07/10
Aさん,07/05,未払い,1000,NULL,NULL
Aさん,07/08,未払い,3000,NULL,NULL
Aさん,07/30,未払い,4000,NULL,NULL
Bさん,06/20,未払い,2000,NULL,NULL
Bさん,06/28,未払い,3000,NULL,NULL
Bさん,07/05,未払い,2000,NULL,NULL
Bさん,07/11,未払い,5000,NULL,NULL
Bさん,07/20,未払い,3000,NULL,NULL
UPDATE条件:
7月給与の締めを行う時(6月未払い分と7月分)
「ステータス」が'未払い'で「日給」の合計が一万円以上の場合だけ
「ステータス」を'締め'とし「締め日」に'07/31'と[UPDATE]したいのです。
イメージとしては、以下のような感じです。
SELECT ユーザー AS '支払発生ユーザー' FROM バイト給与テーブル
WHERE ステータス = '未払い'
GROUP BY ユーザー
HAVING SUM(日給) >= 10000
UPDATE バイト給与テーブル
SET
ステータス = '締め',
締め日 = '07/31'
WHERE ユーザー = '支払発生ユーザー'
AND ステータス = '未払い'
現在使用しているMYSQLのバージョンでは、サブクエリーは使えないようです。
ご教授お願い致します。
No.1ベストアンサー
- 回答日時:
ユーザー、作業日でユニーク属性をつけておけばREPLACEで処理できます。
テンポラリをうまくつかうとよいでしょう。
ALTER TABLE `バイト給与テーブル`
ADD UNIQUE (`ユーザー` ,`作業日`);
(これは1回やっておけばよい)
CREATE TEMPORARY TABLE `TEMP_支払い`
SELECT ユーザー AS `支払発生ユーザー`
FROM `バイト給与テーブル`
WHERE `ステータス` = '未払い'
GROUP BY `ユーザー`
HAVING SUM(`日給`) >= 10000;
CREATE TEMPORARY TABLE `TEMP_変換`
SELECT `ユーザー`,`作業日`,'支払済' AS `ステータス`,`日給`,'2006-07-31' AS `締め日`,NULL AS `支払日`
FROM `バイト給与テーブル`
INNER JOIN `TEMP_支払い` ON `支払発生ユーザー`=`ユーザー`;
REPLACE `バイト給与テーブル`
SELECT * FROM `TEMP_変換`;
この回答への補足
書き込みが遅くなりすみません。
教えて頂いた方法で試した結果うまく処理出来ました。
TEMPORARY TABLE 、REPLACEともに今まで使った事がなかったので、
今回教えて頂いた事は、とても勉強になりました。
特にTEMPORARY TABLEの応用範囲はひろそうですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルリンク リンク元を知...
-
お金持ちのテーブル
-
L2SWはARPテーブルを持っている?
-
飲み会で、座敷orテーブルどち...
-
mysqlのupdate構文についての質...
-
「テーブルに座って……」という...
-
AccessVBA でテーブルをインポ...
-
外部キーだけのテーブル(主キ...
-
男性と2人で飲食店に行きテーブ...
-
会社の飲み会の幹事になり、座...
-
AccessにおいてフィールドがN...
-
UTF8のテーブルをODBCドライバ...
-
今度同じサークルだった女の子...
-
件数の多い順にselect
-
mysql alter table 終わらない
-
ACCESS テーブルのRENAME
-
コンボボックスにレコードセッ...
-
2つのテーブルのカウント結果...
-
1つのテーブルに同じデータを参...
-
複数のテーブルの項目を同時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
外部キーだけのテーブル(主キ...
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
アクセスのリンクテーブル一覧...
-
飲み会で、座敷orテーブルどち...
-
会社の飲み会の幹事になり、座...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQL Server management studio ...
-
面接のときテーブルが正面に。...
-
オーダーの覚え方について
-
論理名とコメント構文(?)について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
複数テーブルにわたるCOUNT
-
【エクセル】データテーブルの...
-
一致するデータのみ削除したい
-
複雑なSQL文について
おすすめ情報