Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe. je
m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant le
1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage !!!
merci d'avance
Guy
MsSql 2000
Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe. je
m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant le
1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage !!!
merci d'avance
Guy
MsSql 2000
Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe. je
m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant le
1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage !!!
merci d'avance
Guy
MsSql 2000
Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
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.sqlspot.com *************************
Guy Gasiorowski a écrit :
Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
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.sqlspot.com *************************
Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
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.sqlspot.com *************************
"Fred BROUARD" a écrit dans le message de news:
%Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
Guy--
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.sqlspot.com *************************
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
%23Oc4hcQXIHA.4696@TK2MSFTNGP05.phx.gbl...
Guy Gasiorowski a écrit :
Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
Guy
--
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.sqlspot.com *************************
"Fred BROUARD" a écrit dans le message de news:
%Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en prenant
le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un blocage
!!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et en
postant le DDL des tables en jeu et un jeu d'essais sous forme d'ordre SQL
INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
Guy--
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.sqlspot.com *************************
Guy Gasiorowski a écrit :"Fred BROUARD" a écrit dans le message de
news: %Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en
prenant le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un
blocage !!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et
en postant le DDL des tables en jeu et un jeu d'essais sous forme
d'ordre SQL INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
MAIS LE PREMIER PAR RAPPORT A QUOI ???? Quel est votre ordre ??? On ne
peut pas le deviner !
A +Guy
--
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.sqlspot.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.sqlspot.com *************************
Guy Gasiorowski a écrit :
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news: %23Oc4hcQXIHA.4696@TK2MSFTNGP05.phx.gbl...
Guy Gasiorowski a écrit :
Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en
prenant le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un
blocage !!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et
en postant le DDL des tables en jeu et un jeu d'essais sous forme
d'ordre SQL INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
MAIS LE PREMIER PAR RAPPORT A QUOI ???? Quel est votre ordre ??? On ne
peut pas le deviner !
A +
Guy
--
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.sqlspot.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.sqlspot.com *************************
Guy Gasiorowski a écrit :"Fred BROUARD" a écrit dans le message de
news: %Guy Gasiorowski a écrit :Bonjour,
Je tourne avec ce problème depuis 2 jours.
J'essaie de mettre à jour (UPDATE) une table avec une notion de groupe.
je m'explique :
J'ai une base que je voudrais mettre à jour par une constante en
prenant le 1er de chaque groupe.
Le select correspond à cela :
SELECT marqu, typveh, modele, couleu
FROM VEHICULE WHERE visupart = 'O'
GROUP BY marqu, typveh, modele, couleu
ORDER BY marqu, typveh, modele, couleu
bien sur ma base à un identifiant (pointeur)
et l'UPDATE que je veux faire sur le champ visu est une constante 'O'.
J'ai trouvé des exmples mais je n'y arrive pas. Je dois faire un
blocage !!!
merci d'avance
Guy
MsSql 2000
précisez un peut ce que vous voulez obtenir avec un exemple concret et
en postant le DDL des tables en jeu et un jeu d'essais sous forme
d'ordre SQL INSERT.
A +
En fait c'est assez "simple", je veux mettre à jour le 1er enr de chaque
groupe le champ visulux par 'O'
MAIS LE PREMIER PAR RAPPORT A QUOI ???? Quel est votre ordre ??? On ne
peut pas le deviner !
A +Guy
--
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.sqlspot.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.sqlspot.com *************************
Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien mon
identifiant à mettre à jour.
Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien mon
identifiant à mettre à jour.
Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien mon
identifiant à mettre à jour.
Guy Gasiorowski a écrit:Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien
mon identifiant à mettre à jour.
update v1
SET visu= 'O'
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu,
v1.typveh = v2.typveh,
v1.modele = v2.modele,
v1.Couleu = v2.Couleu,
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Guy Gasiorowski a écrit:
Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien
mon identifiant à mettre à jour.
update v1
SET visu= 'O'
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu,
v1.typveh = v2.typveh,
v1.modele = v2.modele,
v1.Couleu = v2.Couleu,
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Guy Gasiorowski a écrit:Voici la requete mais elle me fait une erreur sur "La sous-requête a
retourné plusieurs valeurs." Or la sous requete me renvoie juste
"min(pointpst)"
je ne comprends l'erreur.la sous requete lancée séparement me donne bien
mon identifiant à mettre à jour.
update v1
SET visu= 'O'
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu,
v1.typveh = v2.typveh,
v1.modele = v2.modele,
v1.Couleu = v2.Couleu,
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
> Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
> Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
> Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Comme tu n'as pas fourni de code de création de ta table, je n'ai pas eu
l'occasion de la tester. On te fourni qqch qui fonctionne si tu postes le
DDL de ta table.
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
Cette table viole la troisième forme normale.
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_relationnelles%29
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Comme tu n'as pas fourni de code de création de ta table, je n'ai pas eu
l'occasion de la tester. On te fourni qqch qui fonctionne si tu postes le
DDL de ta table.
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
Cette table viole la troisième forme normale.
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_relationnelles%29
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Bonjour,
je ne comprends pas la requete et elle ne marche pas erreur sur le ON
Comme tu n'as pas fourni de code de création de ta table, je n'ai pas eu
l'occasion de la tester. On te fourni qqch qui fonctionne si tu postes le
DDL de ta table.
Je ne comprends pas pourquoi j'aurais un probleme de conception de base.
J'ai une base avec x champs
pointpst(id), marqu,typveh,modele,couleu,visu,+poincli+visupart+...
Ce que je veux faire c'est mettre à jour le 1er enr de chaque groupe
(marqu,typveh,modele,couleu) en mettant un flag 'O' dans le champ visu
ID marque typveh modele couleu visu
1245 renault clio 1.5 dci rouge O <== mise à jour
1246 renault clio 1.5 dci rouge
1248 renault clio 1.5 dci rouge
1244 renault megane 1.5 dci rouge O <== mise à jour
1255 renault megane 1.5 dci rouge
je ne vois pas en quoi la modélisation relationnelle est en cause !
certes ce n'est peut etre pas commun...
Cette table viole la troisième forme normale.
http://fr.wikipedia.org/wiki/Forme_normale_%28bases_de_donn%C3%A9es_relationnelles%29
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
CREATE TABLE [dbo].[VEHICULE] (
CREATE TABLE [dbo].[VEHICULE] (
CREATE TABLE [dbo].[VEHICULE] (
Guy Gasiorowski a écrit:CREATE TABLE [dbo].[VEHICULE] (
Merci.
Il n'y a pas de colonne "visu" dans ta table.
Mettre toutes les informations dans la même table est une très mauvaise
idée. Je réitère mon conseil : apprend le modèle relationnel.
Mon erreur était stupide : des , au lieu des AND dans la condition de
jointure.
update v1
SET visu = 'O' -- la colonne n'existe pas ?
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu AND
v1.typveh = v2.typveh AND
v1.modele = v2.modele AND
v1.Couleu = v2.Couleu AND
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Guy Gasiorowski a écrit:
CREATE TABLE [dbo].[VEHICULE] (
Merci.
Il n'y a pas de colonne "visu" dans ta table.
Mettre toutes les informations dans la même table est une très mauvaise
idée. Je réitère mon conseil : apprend le modèle relationnel.
Mon erreur était stupide : des , au lieu des AND dans la condition de
jointure.
update v1
SET visu = 'O' -- la colonne n'existe pas ?
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu AND
v1.typveh = v2.typveh AND
v1.modele = v2.modele AND
v1.Couleu = v2.Couleu AND
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/
Guy Gasiorowski a écrit:CREATE TABLE [dbo].[VEHICULE] (
Merci.
Il n'y a pas de colonne "visu" dans ta table.
Mettre toutes les informations dans la même table est une très mauvaise
idée. Je réitère mon conseil : apprend le modèle relationnel.
Mon erreur était stupide : des , au lieu des AND dans la condition de
jointure.
update v1
SET visu = 'O' -- la colonne n'existe pas ?
FROM vehicule v1
JOIN (SELECT v.marqu,v.typveh,v.modele,v.Couleu, MIN(v.pointpst) as
pointpst
FROM VEHICULE v
WHERE v.visupart = 'O'
AND (v.pointcli = 0 or v.pointcli is null)
GROUP BY v.marqu,v.typveh,v.modele,v.Couleu) v2
ON v1.marqu = v2.marqu AND
v1.typveh = v2.typveh AND
v1.modele = v2.modele AND
v1.Couleu = v2.Couleu AND
v1.pointpst = v2.pointpst
--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT, MVP SQL Server
http://www.babaluga.com/
http://rudi.developpez.com/