Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : pb de requete Update d1 table en fonction d1 autre table [ Archives / Problème avec une requête ] (Bowen123)

lundi 25 avril 2005 à 17:38:12 | pb de requete Update d1 table en fonction d1 autre table

Bowen123

Bonjour,

Je souhaite faire une requete de ce genre

UPDATE Table1
SET Table1.valeur = Table2.valeur
WHERE Table2.valeur = Table2.valeur2

tous ceci dans une procedure stockée sous oracle.
Bien sur ca marche pas ... Help me please

lundi 25 avril 2005 à 19:16:50 | Re : pb de requete Update d1 table en fonction d1 autre table

nhervagault

Administrateur CodeS-SourceS
salut,

Essai avec une requete du type
UPDATE Table1
SET Table1.valeur = (select top 1 valeur fromTable2)
WHERE Table2.valeur = Table2.valeur2


cette requete fonctionne je pense avec sqlserver
avec oracle il faut faire une adaptation

voila esperant d'avoir guider
je n'est pas oracle et sqlserver sur cette machine


mercredi 8 juin 2005 à 15:09:43 | Re : pb de requete Update d1 table en fonction d1 autre table

alf974

Je pense que ton exemple :
UPDATE Table1
SET Table1.valeur = Table2.valeur
WHERE Table2.valeur = Table2.val

contient un petit problème d'algo, car la mise à jour s'effectuera sur l'ensemble de Table1 (la condition Where ne contenant aucun élément de Table1....)

la requête la plus courante pour mettre à jour une table1 avec des éléments d'une table2 c'est :

update Table1
set Table1.valeur = (select Table2.valeur from Table2 where Table2.val = Table1.val)
where exists (select Table2.val from Table2 where Table2.val=Table1.val)

Un petit coucou de l'Océan Indien


lundi 10 octobre 2005 à 15:38:00 | Re : pb de requete Update d1 table en fonction d1 autre table

teuzadur

Bonjour,

J'ai le même problème, je migre un programme VB+ACCESS vers VB+SQL SERVER.
La requête suivante est en erreur sous sql server 2000 :

Requete = "UPDATE Travaux,TravauxXl " _
          & "SET   Travaux.DateCreation = TravauxXl.DateCreation, " _
          & "      Travaux.Commentaire = TravauxXl.Commentaires " _
          & "WHERE Travaux.Msn = TravauxXl.Msn AND " _
          & "      Travaux.Domaine = TravauxXl.Domaine AND " _
          & "      Travaux.TypeTravaux = TravauxXl.TypeTravaux AND " _
          & "      Travaux.Numero = TravauxXl.Numero AND " _
          & "      Travaux.Msn='" & pMsn & "'"

Quel est l'équivalent de cette requête sous SQL SERVER?

Merci de votre aide

lundi 10 octobre 2005 à 19:13:35 | Re : pb de requete Update d1 table en fonction d1 autre table

nhervagault

Administrateur CodeS-SourceS
Salut

Tu ne peux pas updater deux tables en meme temps
Utilises deux requetes et une transaction
c'est bizarre que tu y arrives avec access

mardi 11 octobre 2005 à 02:36:50 | Re : pb de requete Update d1 table en fonction d1 autre table

alf974

Bonjour,

en effet, MSAccess est beaucoup plus "laxiste" que SQL Server pour le langage SQL, il autorise en effet l'utilisation de plusieurs tables dans le update, ce qui ne veut pas dire que le update se fait sur les deux tables. Attention !

Seule la table "Travaux" est mise à jour.

Voici donc la requête réécrite :
UPDATE Travaux
SET   (Travaux.DateCreation,  Travaux.Commentaire) =
( select TravauxXl.DateCreation, TravauxXl.Commentaires
from TravauxXl
WHERE Travaux.Msn = TravauxXl.Msn AND 
      Travaux.Domaine = TravauxXl.Domaine AND 
      Travaux.TypeTravaux = TravauxXl.TypeTravaux AND 
      Travaux.Numero = TravauxXl.Numero AND
      Travaux.Msn='" & pMsn & "'")
where
exists (select TravauxXl.Numero
from TravauxXl
WHERE Travaux.Msn = TravauxXl.Msn AND 
      Travaux.Domaine = TravauxXl.Domaine AND 
      Travaux.TypeTravaux = TravauxXl.TypeTravaux AND 
      Travaux.Numero = TravauxXl.Numero AND
      Travaux.Msn='" & pMsn & "'")

Un petit coucou de l'Océan Indien


mardi 11 octobre 2005 à 11:57:27 | Re : pb de requete Update d1 table en fonction d1 autre table

teuzadur

Merci pour votre aide.
Oui je suis d'accord on ne peut mettre à jour qu'une seule table en même temps, même si dans la syntaxe d'access il y a 2 tables.

Par contre alf le principe de ta requête ne semble pas fonctionner. Je pense d'ailleurs qu'il y a une erreur dans le where exists. Je ne comprends pas a quoi sert ce deuxieme tests where exists.

Cela fait maintenant 3 jours que je cherche, les boules mon chef va me tomber dessus :-) Je continue de chercher!

mardi 11 octobre 2005 à 12:05:06 | Re : pb de requete Update d1 table en fonction d1 autre table

teuzadur

En fait il attend un = dès la première valeur du SET je pense

syntaxe SQL SERVER (d'après source du bouquin):

UPDATE nom_table
SET {nom_colonne={expression | default } [,]}
[FROM table_source]
[WHERE condition]

C'est que des exemples trivial dans le bouquin, pas de cas concret comme liaison entre 2 tables. Merci de votre aide.

mardi 11 octobre 2005 à 19:54:24 | Re : pb de requete Update d1 table en fonction d1 autre table

alf974

Essayes ceci :

UPDATE Travaux
SET Travaux.DateCreation=t1.DateCreation,  Travaux.Commentaire =t1.Commentaires
FROM (select TravauxXl.Msn,TravauxXl.Domaine ,TravauxXl.TypeTravaux ,TravauxXl.Numero,TravauxXl.DateCreation, TravauxXl.Commentaires from TravauxXl) AS t1
WHERE Travaux.Msn = t1.Msn AND 
      Travaux.Domaine = t1.Domaine AND 
      Travaux.TypeTravaux = t1.TypeTravaux AND 
      Travaux.Numero = t1.Numero AND
      Travaux.Msn='" & pMsn & "'"

Excuse moi pour les hésitations, mais je suis plus habitué à Oracle...

Un petit coucou de l'Océan Indien


mercredi 12 octobre 2005 à 09:20:38 | Re : pb de requete Update d1 table en fonction d1 autre table

teuzadur

J'ai trouvé la réponse, merci à vous.
Ci-dessous la requete tsql :

CREATE PROCEDURE dbo.UpdateTravauxXl AS
UPDATE Travaux SET Travaux.DateCreation=BddMaitre.dbo.TravauxXl.DateCreation, Travaux.Commentaire=BddMaitre.dbo.TravauxXl.Commentaires
FROM Travaux, BddMaitre.dbo.TravauxXl
WHERE Travaux.Msn=BddMaitre.dbo.TravauxXl.Msn AND Travaux.Domaine=BddMaitre.dbo.TravauxXl.Domaine AND Travaux.TypeTravaux=BddMaitre.dbo.TravauxXl.TypeTravaux AND Travaux.Numero=BddMaitre.dbo.TravauxXl.Numero AND Travaux.Msn='1'
GO



Cette discussion est classé dans : pb, table, requete, d1, table2


Répondre à ce message

Sujets en rapport avec ce message

pb requete sql [ par lenneth666 ] Voila dans une table Personne , j'ai les trois champs suivants :  personne_id, nom et prénom.j'aimerais faire une reuqete qui me retourne le nom et pr Pb de requete Drop [ par yanis7518 ] Salut a tousj'ai une requete qui doit supprimer la table seulement si elle existe. Voici la Requete : IFEXISTS(<font color="#0 Besoin d'aide pour une requete [ par ranouf ] Bonjour,Je me demande si c'est possible de résoudre ce problème par une requete :Imaginez un cube de 5*5*5 cases.Dans ce cube 2 cases appartiennent à probleme de requete [ par aquewel ] Voila j'ai une requete ou je voudrais comparer la date d'aujourd'hui et la date de ma base de données et voir si il y a une difference egal ou superie Requete sur champs Date [ par yanis7518 ] Salut a tous ma question est assez simple mais je ne sais pas comment faireVoila j'ai une table avec 3champs dont 1 champs date qui correspond a la da Requete sans doublons [ par aztcaLISS ] Salut, Je voudrais faire une requete sur ma base de données. J'ai une Table qui contient 3 champs: Test1, Test2, Test3.Je voudrais obtenir une nouve ORACLE XE pb [ par dark_cross ] Bonjour,je suis debutant en oracle , j'ai installer oracle xe sur mn portable .maintenant a chaque fois que je drop une table ca me rajoute une table  inserer des donnee a une table suite a une requete avec... [ par Oziris ] bonjour a tous !j'aimerer pourvoir envoyer des donnees dans une table mysql a la fin d'un compte a rebour 1min, 2min, 10min peu importe le temps pour requete SQL INSERT tableau 2D dans table sql [ par LaTatadu91 ] Bonjour,je debute en SQL, je precise avant tout!je programme actuellement un petit logiciel sous VC++ et j'effectue quelques requetes SQL pour attaque Aide sur requete [ par romainbisson ] Salut,Je voudrais avoir une requete qui va lire dans une table, puis va lire dans une autre table et compare ces deux lecture et affiche le resultat..


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.