- 15
erreur classique : penser que toutes les oeuvres sont des peintures, et répondre 17
SQL : SELECT Count(Type.CodeOeuvre) AS CompteDeCodeOeuvre FROM Type GROUP BY Type.CodeArt HAVING (((Type.CodeArt)= »P »)); - Musée Picasso Barcelone et Musée Picasso Màlaga
SQL : SELECT Musée.NomMusee FROM (Musée INNER JOIN Oeuvre ON Musée.CodeMusee = Oeuvre.CodeMusee) INNER JOIN (Artiste INNER JOIN Créateur ON Artiste.CodeArtiste = Créateur.CodeArtiste) ON Oeuvre.CodeOeuvre = Créateur.CodeOeuvre WHERE (((Artiste.NomArtiste)= »Pablo Picasso »)); - Espagne
On passe ici par deux sous-requêtes :
– nombre d’artistes par pays (SQL : SELECT Pays.NomPays, Count(Artiste.CodePays) AS CompteDeCodePays FROM Pays INNER JOIN Artiste ON Pays.CodePays=Artiste.CodePays GROUP BY Pays.NomPays;)
– max d’artistes par pays (SQL : SELECT Max([3a – nombre d’artistes par pays].CompteDeCodePays) AS MaxDeCompteDeCodePays FROM [3a – nombre d’artistes par pays];)
puis : SELECT [3a – nombre d’artistes par pays].NomPays FROM [3a – nombre d’artistes par pays] INNER JOIN [3b – max d’artistes par pays] ON [3a – nombre d’artistes par pays].CompteDeCodePays = [3b – max d’artistes par pays].MaxDeCompteDeCodePays; - Brooklyn Museum : 0,00025 / collection Faringdon – Oxon : 0,003 / Delaware Art Museum : 0,002 / … / Musée Picasso Màlaga : 1,119E-05
Les nombres sont ridicules en raison du peu d’oeuvres entrées (pour des superficies réalistes)
On passe par une sous-requête :
nombre d’oeuvres par musée (SELECT Count(Oeuvre.CodeOeuvre) AS CompteDeCodeOeuvre, Musée.CodeMusee FROM Musée INNER JOIN Oeuvre ON Musée.CodeMusee=Oeuvre.CodeMusee GROUP BY Musée.CodeMusee;)
puis un champ densité: [CompteDeCodeOeuvre]/Musée!Superficie
SQL : SELECT Musée.NomMusee, [CompteDeCodeOeuvre]/Musée!Superficie AS densité FROM Musée INNER JOIN [4a – nombre d’oeuvres par musée] ON Musée.CodeMusee = [4a – nombre d’oeuvres par musée].CodeMusee GROUP BY Musée.NomMusee, [CompteDeCodeOeuvre]/Musée!Superficie; - On demande ici une analyse croisée !
SQL : TRANSFORM Count(Oeuvre.CodeOeuvre) AS CompteDeCodeOeuvre SELECT Artiste.NomArtiste FROM Pays INNER JOIN (Oeuvre INNER JOIN (Artiste INNER JOIN Créateur ON Artiste.CodeArtiste = Créateur.CodeArtiste) ON Oeuvre.CodeOeuvre = Créateur.CodeOeuvre) ON Pays.CodePays = Artiste.CodePays GROUP BY Artiste.NomArtiste PIVOT Pays.NomPays; - NomArtiste / représenté dans son propre pays, Barnabé Muges / oui, Howard Pyle / oui, … , William Blake / non
Il faut faire ici un Vrai/Faux : représenté dans son propre pays: VraiFaux(Pays!NomPays=Pays_1!NomPays; »oui »; »non »)
SQL : SELECT Artiste.NomArtiste, IIf(Pays!NomPays=Pays_1!NomPays, »oui », »non ») AS [représenté dans son propre pays] FROM Pays AS Pays_1 INNER JOIN ((Musée INNER JOIN Oeuvre ON Musée.CodeMusee = Oeuvre.CodeMusee) INNER JOIN ((Pays INNER JOIN Artiste ON Pays.CodePays = Artiste.CodePays) INNER JOIN Créateur ON Artiste.CodeArtiste = Créateur.CodeArtiste) ON Oeuvre.CodeOeuvre = Créateur.CodeOeuvre) ON Pays_1.CodePays = Musée.CodePays GROUP BY Artiste.NomArtiste, IIf(Pays!NomPays=Pays_1!NomPays, »oui », »non ») ORDER BY Artiste.NomArtiste;
- Sunday
- November 24th, 2024
- Ajouter un cours