Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 00h56   #1
Futur Membre du Club
 
Homme domdom
Développeur informatique
Inscription : mars 2011
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme domdom
Localisation : Angola

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 69
Points : 19
Points : 19
Par défaut sous requetes sous sql server

bonjour a tous je suis en plein periode d'examen et je prépare sql server
et je suis bloqué dans une requête ou je sais pas mon erreur voila je vous propose de voire ma base et ma proposition pour la solution
la réponse que je veux c ou ma faute et pourkoi et comment faire pour résoudre ces types de requêtes, j'ai déjà jeté un coup d’œil sur la les tuto mais je trouve que c pas trop clair;mais bon voila

[IMG] Uploaded with ImageShack.us[/IMG]

la question c'est ;. Trouvez le nom d'origine des œuvres qui ont été traduites par au moins 2 traducteurs français
ma proposition

Code :
1
2
3
SELECT œuvre.IDOEUVRE FROM œuvre JOIN livre_paru ON œuvre.IDOEUVRE=livre_paru.NUMOEUVRE WHERE 
livre_paru.IDLIVRE IN(SELECT traduit_par.numLivre FROM traduit_par WHERE traduit_par.numTrad IN 
(SELECT traducteur_ecrivain.IDTRAD_ECRIV FROM traducteur_ecrivain) GROUP BY traduit_par.numTrad HAVING COUNT(*)>1 )
pour l'ereur affiché c'est : La colonne 'traduit_par.numLivre' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.

alors aidez moi s'il vous plait et je vous remercie
momedalhouma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 09h16   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 470
Points : 2 470
Envoyer un message via Yahoo à zinzineti
Dans le group by tu dois avoir la liste des colonnes du SELECT. J'envoie ce msg depuis un smartphone et j'ai du mal à ecrire des requetes avec
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2012, 09h29   #3
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 611
Points : 1 611
Je resoudrais la question comme ceci:

Code :
1
2
3
4
5
6
7
8
9
10
 
SELECT 
  o.Titre  -- On veut le nom des oeuvres
FROM oeuvre o
JOIN livre_paru l ON o.idoeuvre = l.numoeuvre -- On doit passer par les livres parus pour arriver aux traductions
JOIN traduit_par t ON t.numlivre = l.idlivre -- On passe par ici pour savoir par qui le livre a ete traduit
JOIN traducteur_ecrivain te ON te.idtrad_ecriv = t.numtrad -- On arrive ici aux traducteurs
WHERE te.nationalite = 'Francais' -- On veut que les traducteurs soient francais
GROUP BY o.Titre -- On veut voir 1 seule fois les titres apparaitre et realiser notre aggregation sur ces titres
HAVING count (o.Titre) > 1 -- Et on ne veut que ceux qui sont traduit au moins 2 fois
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h07.


 
 
 
 
Partenaires

Hébergement Web