web-dev-qa-db-ja.com

SELECTおよびINNERJOINを使用したSQLINSERT INTO

やあみんなこの小さな問題で私を助けてくれるといいのですが。

どうやって説明したらいいのかよくわからないので、やってみます。

私がやろうとしていることは次のとおりです。

(自分で入力した)特定の値とパラメーターをテーブルRFC_Risksに挿入したいので、基本的にテーブルRCF_Risks内で特定の理由を見つけるたびに、RfCの優先度を更新する新しい行を記述します。それが起こるたびに、位置は1ずつ増加します。

私の問題は、このステートメントを実行すると、SELECT部分​​が取得されるだけで、挿入が行われず、SQLステートメントエラーなども発生しないことです。パラメータを入力するだけで、SELECTテーブルがすべて表示されます。

私はMSAccess 2010を使用していますが、私の「小さな」問題を解決してくれることを願っています。

INSERT INTO RFC_Risks (RFC_No, RiskPos, Datum, Comments, RiskPrio, Reason)
SELECT RFC_Risks.RFC_No, (RFC_Risks.RiskPos +1) AS RiskPos, [Aktuelles Datum] AS Datum, [Kommentartext] AS Comments, [Neue Prio] AS RiskPrio, RFC_Risks.Reason 
FROM RFC_Risks INNER JOIN Risk_Reasons ON RFC_Risks.Reason = Risk_Reasons.Reasontext 
WHERE RFC_Risks.Reason = Risk_Reasons.Reasontext;
7
sXing

SQLステートメントの実行を妨げたり、エラーをスローしたりする可能性のあるSQLステートメントについては何も見つかりません。 (WHERE句は冗長だと思いますが、dbエンジンがそれを拒否することはないはずです。)それを「実行」するためにどの方法を使用していますか?

Accessクエリデザイナを使用していて、デザインビューからデータシートビューに切り替えた場合、クエリは実際には実行されません...データシートビューには、クエリが実行された場合に影響を受ける行が表示されます。

状況は、クエリデザイナで削除クエリを作成する場合と同じです...データシートビューには、削除される行が表示されますifクエリが実行されましたが、データシートビューに切り替えても表示されませんそれらの行を削除します。

クエリを実行するには、赤い感嘆符の付いたアイコンをクリックします。

3
HansUp

副選択を括弧で囲んでみてください。

1
taz

クエリを実行する必要があります。データシートビューにのみ表示する場合は、SELECTステートメントが実行され、一種のプレビューとして表示されます。

クエリを実際に実行するには、デザインモードのときに、ツールバーの[実行]ボタン(赤い感嘆符)をクリックします。データベースウィンドウでクエリをダブルクリックすることもできます。

0
Mathieu Pagé