SQL INSERT INTO с SELECT и INNER JOIN - PullRequest
       16

SQL INSERT INTO с SELECT и INNER JOIN

7 голосов
/ 12 августа 2011

Привет, ребята. Надеюсь, вы поможете мне с этой маленькой проблемой.

Я не совсем уверен, как объяснить вам ситуацию, так что я просто попробую.

ЧтоЯ пытаюсь сделать следующее:

Я хочу вставить некоторые конкретные значения и параметры (которые я ввожу в себя) в таблицу RFC_Risks, поэтому в основном каждый раз, когда я нахожу конкретную причину внутри таблицы RCF_Risks,Я хочу написать новую строку, которая обновляет приоритет RfC, каждый раз, когда это происходит, позиция увеличивается на 1.

Моя проблема в том, что когда я запускаю это утверждение, я просто получаюВЫБЕРИТЕ часть :-), вставка не производится, и я не получаю ошибку оператора SQL или что-то в этом роде.Я просто набираю параметры и затем получаю SELECT таблицу, вот и все.

Я использую MS Access 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;

Ответы [ 3 ]

3 голосов
/ 12 августа 2011

Я не могу ничего найти в вашем операторе SQL, который мог бы помешать его выполнению и / или выдать ошибку.(Я думаю, что ваше предложение WHERE является избыточным, но это не должно приводить к тому, что механизм БД отклоняет его.) Какой метод вы используете для его запуска?

Если вы используете конструктор запросов Access, ипереключитесь из режима конструктора в представление таблицы, ваш запрос на самом деле не выполняется ... Представление таблицы покажет вам строки, которые будут затронуты, если запрос будет выполнен.

Ситуация такая же, как если бы вы строили запрос на удаление в конструкторе запросов ... Представление таблицы показало бы, какие строки будут удалены , если запрос был выполнен, но переключениеДля просмотра таблицы не удаляются эти строки.

К Выполните запрос, щелкните значок с красным восклицательным знаком.

1 голос
/ 12 августа 2011

Попробуйте заключить подвыбор в круглые скобки.

0 голосов
/ 12 августа 2011

Вам необходимо выполнить ваш запрос. Если вы отображаете его только в виде таблицы, оператор SELECT выполняется и отображается для вас в качестве предварительного просмотра.

Чтобы действительно выполнить запрос, когда вы находитесь в режиме разработки, вы можете нажать кнопку «Выполнить» (красный восклицательный знак) на панели инструментов. Вы также можете дважды щелкнуть по запросу в окне базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...