Nous souhaitons à présent obtenir une statistique par rapport aux nombres d'entrées : quels sont les films ayant réalisé plus d'entrées que la moyenne de tous les films. Pour exécuter cette requête en SQL, nous allons utiliser une requête incluse dans une requête, autrement dit une sous-requête.
Voici le code 4D correspondant à cette requête :
- En utilisant du code SQL :
- En utilisant les commandes SQL génériques :
- En utilisant la commande SQL dynamique EXECUTE IMMEDIATE :
TABLEAU ENTIER LONG(aSoldTickets;0)
TABLEAU TEXTE(aTitles;0)
C_TEXTE($tQueryTxt)
$tQueryTxt:=""
$tQueryTxt:=$tQueryTxt+"SELECT Title, Sold_Tickets"
$tQueryTxt:=$tQueryTxt+" FROM MOVIES"
$tQueryTxt:=$tQueryTxt+" WHERE Sold_Tickets > (SELECT AVG(Sold_Tickets) FROM MOVIES)"
$tQueryTxt:=$tQueryTxt+" ORDER BY 1"
$tQueryTxt:=$tQueryTxt+" INTO :aTitles, :aSoldTickets"
Debut SQL
EXECUTE IMMEDIATE :$tQueryTxt;
Fin SQL
TABLEAU ENTIER(aMovieYear;Taille tableau(aTitles))
TABLEAU TEXTE(aDirectors;Taille tableau(aTitles))
TABLEAU TEXTE(aMedias;Taille tableau(aTitles))
TABLEAU ENTIER LONG(aNrActors;Taille tableau(aTitles))
Pour tester ces exemples, lancez la base "4D SQL Code Samples" et affichez la boîte de dialogue principale. Choisissez le mode d'interrogation du moteur de 4D et cliquez sur le bouton Sous-requêtes.