SQL INSERT INTO avec les SÉLECTIONNER et les INNER JOIN
Hé les gars j'espère que vous pourrez m'aider avec ce petit problème.
Je ne suis pas tout à fait sûr de la façon d'expliquer la situation à vous si Mal juste lui donner un essai.
Ce que je suis en train de faire est la suivante:
Je veux insérer des valeurs spécifiques et des paramètres (dont je fais moi-même) dans la table RFC_Risks, donc, fondamentalement, chaque fois que je trouve une raison spécifique à l'intérieur de la table RCF_Risks, je veux écrire une nouvelle ligne qui met à jour la priorité de la RfC, chaque fois que cela se produit, la position doit être augmenté de 1.
Mon problème est que lorsque j'exécute cette instruction, je viens d'obtenir la partie SELECT :-), pas de l'insertion est fait, ni puis-je obtenir une instruction SQL d'erreur ou quelque chose comme ça. Je viens de taper dans les paramètres puis-je obtenir un SELECT
Table c'est tout.
Je suis en utilisant MS Access 2010 et j'espère que vous pouvez m'aider avec mon "petit" problème.
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;
WHERE
clause à la fin, votre INNER JOIN
fait pour vous =)Quelle est l'erreur ou des résultats inattendus en êtes-vous? Cela semble OK pour moi..
il sonne comme le résultat inattendu qu'ils obtiennent, c'est que aucun des enregistrements sont insérés dans RFC_Risks (uniquement le
SELECT
partie est exécuté)OriginalL'auteur sXing | 2011-08-12
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas repérer quelque chose au sujet de votre instruction SQL qui pourrait l'empêcher de s'exécuter et/ou de jeter une erreur. (Je pense que votre clause where est redondant, mais qui ne devrait pas provoquer le moteur de base de la rejeter.) Quelle méthode utilisez-vous pour "exécuter"?
Si vous êtes en utilisant le concepteur de requêtes, et de passer de la Conception au mode feuille de données, votre requête n'est pas exécutée ... la Vue de Datasheet vous montrera les lignes qui seraient affectées si la requête a été exécutée.
La situation est la même que si vous avez été la construction d'une requête de suppression dans le concepteur de requêtes ... mode feuille de données, serait de vous montrer les lignes qui serait supprimé si la requête ont été exécutés, mais le passage à la Vue de Datasheet de ne pas supprimer ces lignes.
À exécuter la requête, cliquez sur l'icône qui a un point d'exclamation rouge.
OriginalL'auteur HansUp
Essayez d'enfermer celle-ci dans les parenthèses.
Donc vous voulez dire que je devrais mettre une parenthese en avant de la sélectionner? INSÉREZ DANS RFC_Risks ( RFC_No, RiskPos, Donnée, Commentaires, Risk_Prio, de la Raison ) (SÉLECTIONNER RFC_Risks.RFC_No, (RFC_Risks.RiskPos +1) RiskPos, [Aktuelles Datum] COMME Donnée, [Kommentartext] QUE les Commentaires, [Neue Prio] COMME Risk_Prio, RFC_Risks.Raison DE Risk_Reasons INNER JOIN RFC_Risks SUR Risk_Reasons.Reasontext = RFC_Risks.Raison);
OriginalL'auteur taz
Vous avez besoin pour exécuter votre requête. Si vous ne l'afficher en mode feuille de données, l'Instruction SELECT est exécutée et affiché sur l'écran comme une sorte d'aperçu.
Vraiment exécuter la requête, lorsque vous êtes en mode création, vous pouvez cliquer sur le bouton "Exécuter" (un point d'exclamation rouge) dans la barre d'outils. Vous pouvez également double-cliquez sur la requête dans la fenêtre base de données.
Vous êtes probablement en train d'insérer un nouvel enregistrement avec les mêmes valeurs pour la clé primaire d'un enregistrement qui se trouve déjà dans la table (Vous pourriez aussi être l'ajout de deux, ou plus, des documents, avec les mêmes valeurs pour leur clé primaire).
OriginalL'auteur Mathieu Pagé