OVH Cloud OVH Cloud

Jointure pour débutant

6 réponses
Avatar
Gérard Ducouret
Bonjour,

Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le champ
PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans cette
table le champ WPROJ_ID = 109.
Avec tous mes remerciements,

Gérard, profane en SQL

6 réponses

Avatar
Christian Robert
2 syntaxe possible pour les jointures dans un UPDATE

UPDATE matable
SET matable.monchamp = manouvellevaleur/champ
FROM matablebis
WHERE matable.monchampdejointure = matablebis
.mondeuxiemechamp

ou

UPDATE MATAB
SET monchamp = manouvellevaleur/champ
FROM matable AS MATAB
JOIN matablebis ON MATAB.monchampdejointure = matablebis
.mondeuxiemechamp

J'espère ne pas avoir fait de boulettes dans la syntaxe...

--
Cordialement

Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005


"Gérard Ducouret" a écrit :

Bonjour,

Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le champ
PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans cette
table le champ WPROJ_ID = 109.
Avec tous mes remerciements,

Gérard, profane en SQL





Avatar
SQLpro [MVP]
Bonjour,

Gérard Ducouret a écrit :
Bonjour,

Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le champ
PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans cette
table le champ WPROJ_ID = 109.
Avec tous mes remerciements,

Gérard, profane en SQL




Sans la description de vos tables et la spécifications des clefs
primaires et étrangères il est impossible de vous répondre.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Gérard Ducouret
Merci Christian,
Ce que je veux faire : si dans la table MSP_VIEW_PROJ_PROJECTS_STD, le champ
WPROJ_ID contient la valeur 109, je veux mettre à 0 la valeur du champ
PROJ_CHECKEDOUT dans la table MSP_PROJECTS, pour l'enregistrement où le
champ PROJ_ID est identique au champ ProjectUniqueID dans la table
MSP_VIEW_PROJ_PROJECTS_STD.
J'ai essayé ceci, cela ne retourne pas d'erreur, mais cela ne fonctionne pas
non plus : (0 ligne(s) affectée(s)) alors qu'il doit y en avoir une.

USE ProjectSvr
UPDATE MSP_PROJECTS
SET MSP_PROJECTS.PROJ_CHECKEDOUT = 0
FROM MSP_VIEW_PROJ_PROJECTS_STD
WHERE MSP_VIEW_PROJ_PROJECTS_STD.WPROJ_ID (SELECT PROJ_ID From MSP_PROJECTS as P
JOIN MSP_VIEW_PROJ_PROJECTS_STD AS v
ON p.PROJ_ID = v.ProjectUniqueID
WHERE v.WPROJ_ID= '109')

Quelle est mon erreur ?
Merci,

Gérard

"Christian Robert" (sansspam)> a écrit dans le
message de news:
2 syntaxe possible pour les jointures dans un UPDATE

UPDATE matable
SET matable.monchamp = manouvellevaleur/champ
FROM matablebis
WHERE matable.monchampdejointure = matablebis
.mondeuxiemechamp

ou

UPDATE MATAB
SET monchamp = manouvellevaleur/champ
FROM matable AS MATAB
JOIN matablebis ON MATAB.monchampdejointure = matablebis
.mondeuxiemechamp

J'espère ne pas avoir fait de boulettes dans la syntaxe...

--
Cordialement

Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005


"Gérard Ducouret" a écrit :

> Bonjour,
>
> Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le


champ
> PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
> ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans


cette
> table le champ WPROJ_ID = 109.
> Avec tous mes remerciements,
>
> Gérard, profane en SQL
>
>
>


Avatar
Gérard Ducouret
Bonjour Frédéric,

Table MSP_PROJECTS :
- PROJ_ID (Clé primaire) = 9
- PROJ_NAME
- PROJ_CHECKEDOUT que je veux mettre à 0
Table MSP_VIEW_PROJ_PROJECTS_STD :
- ProjectUniqueID (Clé primaire) = 9
- WPROJ_ID (= 109)
J'ai repéré la valeur 109 dans l'URL du site projet. Je veux mettre son
champ PROJ_CHECKEDOUT à 0.
Merci pour toute aide.

Gérard

"SQLpro [MVP]" a écrit dans le message de
news:
Bonjour,

Gérard Ducouret a écrit :
> Bonjour,
>
> Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le


champ
> PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
> ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans


cette
> table le champ WPROJ_ID = 109.
> Avec tous mes remerciements,
>
> Gérard, profane en SQL
>
>
Sans la description de vos tables et la spécifications des clefs
primaires et étrangères il est impossible de vous répondre.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


Avatar
SQLpro [MVP]
Bonjour,

quelque chose comme :

UPDATE MSP_PROJECTS
SET PROJ_CHECKEDOUT = 0
FROM MSP_PROJECTS P
INNER JOIN MSP_VIEW_PROJ_PROJECTS_STD V
ON P.PROJ_ID = V.ProjectUniqueID
WHERE V.ProjectUniqueID = 9
AND V.WPROJ_ID = 109


Si tu n'es pas sûr, demarre une transaction avec:
BEGIN TRANSACTION

et si après l'update c'est bon alors fais un COMMIT TRANSACTION
sinon un ROLLBACK TRANSACTION.

A +



Gérard Ducouret a écrit :
Bonjour Frédéric,

Table MSP_PROJECTS :
- PROJ_ID (Clé primaire) = 9
- PROJ_NAME
- PROJ_CHECKEDOUT que je veux mettre à 0
Table MSP_VIEW_PROJ_PROJECTS_STD :
- ProjectUniqueID (Clé primaire) = 9
- WPROJ_ID (= 109)
J'ai repéré la valeur 109 dans l'URL du site projet. Je veux mettre son
champ PROJ_CHECKEDOUT à 0.
Merci pour toute aide.

Gérard

"SQLpro [MVP]" a écrit dans le message de
news:
Bonjour,

Gérard Ducouret a écrit :
Bonjour,

Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le




champ
PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans




cette
table le champ WPROJ_ID = 109.
Avec tous mes remerciements,

Gérard, profane en SQL




Sans la description de vos tables et la spécifications des clefs
primaires et étrangères il est impossible de vous répondre.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Gérard Ducouret
Parfait ! Ca marche !
J'ai juste simplifié :
WHERE V.WPROJ_ID = 109

Merci !

Gérard

"SQLpro [MVP]" a écrit dans le message de
news:%
Bonjour,

quelque chose comme :

UPDATE MSP_PROJECTS
SET PROJ_CHECKEDOUT = 0
FROM MSP_PROJECTS P
INNER JOIN MSP_VIEW_PROJ_PROJECTS_STD V
ON P.PROJ_ID = V.ProjectUniqueID
WHERE V.ProjectUniqueID = 9
AND V.WPROJ_ID = 109


Si tu n'es pas sûr, demarre une transaction avec:
BEGIN TRANSACTION

et si après l'update c'est bon alors fais un COMMIT TRANSACTION
sinon un ROLLBACK TRANSACTION.

A +



Gérard Ducouret a écrit :
> Bonjour Frédéric,
>
> Table MSP_PROJECTS :
> - PROJ_ID (Clé primaire) = 9
> - PROJ_NAME
> - PROJ_CHECKEDOUT que je veux mettre à 0
> Table MSP_VIEW_PROJ_PROJECTS_STD :
> - ProjectUniqueID (Clé primaire) = 9
> - WPROJ_ID (= 109)
> J'ai repéré la valeur 109 dans l'URL du site projet. Je veux mettre son
> champ PROJ_CHECKEDOUT à 0.
> Merci pour toute aide.
>
> Gérard
>
> "SQLpro [MVP]" a écrit dans le message de
> news:
>> Bonjour,
>>
>> Gérard Ducouret a écrit :
>>> Bonjour,
>>>
>>> Dans la table MSP_PROJECTS de Project Server, je veux mettre à 0 le
> champ
>>> PROJ_CHECKEDOUT lorsque le code PROJ_ID est identique au code
>>> ProjectUniqueID de la table MSP_VIEW_PROJ_PROJECTS_STD lorsque dans
> cette
>>> table le champ WPROJ_ID = 109.
>>> Avec tous mes remerciements,
>>>
>>> Gérard, profane en SQL
>>>
>>>
>> Sans la description de vos tables et la spécifications des clefs
>> primaires et étrangères il est impossible de vous répondre.
>>
>> A +
>>
>> --
>> Frédéric BROUARD, MVP SQL Server, expert bases de données et langage


SQL
>> Le site sur le langage SQL et les SGBDR :


http://sqlpro.developpez.com
>> Audit, conseil, expertise, formation, modélisation, tuning,


optimisation
>> ********************* http://www.datasapiens.com


***********************
>
>


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************