Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3579 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL

n°181716
cartman200​2
Posté le 26-04-2004 à 14:29:52  profilanswer
 

Voilà j'ai exo de SQL pour mon BTS info et j'ai besoin de vos avis pour me dire si ce que j'ai fait est juste ou pas...
Voilà mon site avec sujet et mes réponses
cartman2002.site.voila.fr  
 
Merci d'avance

mood
Publicité
Posté le 26-04-2004 à 14:29:52  profilanswer
 

n°181720
printf
Baston !
Posté le 26-04-2004 à 14:32:49  profilanswer
 

Il est où le site [:joce]

n°181729
zealot1337
Tu m'as vu quand j'ai bu
Posté le 26-04-2004 à 14:50:29  profilanswer
 

Tout est là printf : http://cartman2002.site.voila.fr/
 
Comme il l'a dit :/ ...
 
(Dans la sous section: Votre page 1)
 
 
Edit: par contre comment on fait pour agrandir les scans, parce que c'est impossible de lire ce qu'il y a d'écrit [:joce]


Message édité par zealot1337 le 26-04-2004 à 14:52:22

---------------
-> http://www.32bits.co.uk/ <-
n°181749
shurik'n
Posté le 26-04-2004 à 15:28:17  profilanswer
 

Ouei aider ok mais la on voit keud :)

n°181759
cartman200​2
Posté le 26-04-2004 à 16:03:30  profilanswer
 

lol dsl pour la taille sais tout nain je sais mais voilà a redimensionner mes doc sinon possibilité d'enregistrer sous comme ca c trankil je sais il y a possibilité de ftp mais j'ai la flemme d'en créer un lol

n°181821
cartman200​2
Posté le 26-04-2004 à 18:43:49  profilanswer
 

voilà le sujet :
 
Client (NumC,NomC,AdrC,CodeC,VilleC,TelC)
Produit (NumP,LibelléP,PoidsP,PrixHTP,NumT#)
Type (NumT,LibelléT)
Facture(NumF,DateF,MontantHTF,MontantTTCF,Datepaiement,NumC#)
Ligne (NumF#,NumP#,Quantité)
 
1. Donnez toutes les dates de paiement des factures du client Au Bulot charnu
 
2.Donnez la liste des villes contenant au moins un des clients de l'entreprise
 
3.Liste des factures (numéro et date de la facture,identité du client correspondant) impayées à ce jour.Vous trierez le résultat de la facture la plus ancienne à la plus récente.
 
4.Dans combien de factures trouve t'on le produit numéro 2712?
 
5.Quel est le poids total des produits facturés dans la facture 12?
 
6.Donnez tous les produits (libellés) facturés le 25/07/2002
 
7.Pour combien la société a t'elle facturé ce mois ci? (Je veux le montant Ht)
 
8.Combien la société a t'elle encaissé de TVA lors des trois derniers mois? (la TVA est la différence entre les montants TTC et HT)
 
9.Donnez tous les clients (classés par ordre alphabétique) ayant commandé le produit le plus cher (une petite aide : il faut écrire deux requetes,l'une étant basée sur l'autre)
 
10.Combien de lignes de facture correspondent à un produit de type Accessoire?
 
11.Combien de produits de type Accessoire ont été facturés?
 
12.L'entreprise souhaite opérer un rappel du produit Ballon sonore qui présente un vice de fabrication.Elle a donc besoin du nom et du téléphone de tous les clients l'ayant commandé.la liste sera triée chronologiquement par date de facture puis par client.
 
13.Donnez le taux moyen de toutes les factures
 
14.Etablissez la liste des clients habitant ds le département de la Meurthe et Moselle (54)
 
Voilà mes réponses :
 
1.Select Datepaiment
From facture F,Client C
Where F.NumF = C.NumF and NomC= "Au bulot charnu"
 
2.Select distinct Ville
From Client
 
3.Select NumF,DateF,NumC
From factureF,ClientC
Where F.NumF=C.NumF and not NumF in date()
Order by 2
 
4.Select count (*) as [Nbre de factures]
From Facture F,produit P
Where F.NumF=P.NumF and NumP="2712"
 
5.Select count (*) as [Poids total]
from produit P,Facture F
Where P.NumP=F.NumP and NumF= "12"
 
6. Select Libellé P, Date F
From Produit P,Facture F
Where P.NumP=F.NumP and DateF = "25/07/2002"
 
7.Select count (*) as [Facture totale]
From Facture F,Ligne L
Where Quantité= "Montant HT"
 
8.Select count (*) as [TVA total]
From Facture F
Where TVA= "Montant TTCF-Montant HTF" and TVA between month ()-3 and Date ()
 
14.Select NumC,CodeC
From Client
Where CodeC= "54"
 
11.Select count (*) as [Nbre produits]
From Produit P,Facture F
Where P.NumF=F.NumF and Libellé T = "Accessoire"
 
Oufff

n°181950
cartman200​2
Posté le 26-04-2004 à 21:48:32  profilanswer
 

Up

n°181974
Tamahome
⭐⭐⭐⭐⭐
Posté le 26-04-2004 à 22:14:56  profilanswer
 

1) Select F.Datepaiement from
Facture F
inner join Client C on C.NumC = F.NumC
where C.NomC= 'Au bulot charnu'
 
2) Select distinct C.VilleC as 'Ville'
from Client C
 
3)Select F.NumF as 'Numero de Facture',
F.DateF as 'Date de Facture', C.NumC as 'Client ID', C.NomC as 'Nom du client'
from Facture F
inner join Client C on C.Numc = F.NumC
where F.Datepaiement is null or F.Datepaiement = ''
order by F.DateF DESC
 
j'ai la flemme pour la suite
 
Edit : tiens j'ai vu que t'avais pas tout fait :
 
10) select count(*) from Ligne L
inner join Produit P on P.NumP = L.NumP
inner join Type T on T.NumT = P.NumT
where T.LibelleT = 'Accessoires'
 
12)Select F.DateF, C.NomC, C.TelC
from Client C
inner join Facture F on F.NumC = C.NumC
inner join Ligne L on L.NumF = F.NumF
inner join Produit P on P.NumP = LNumP
where P.LibelleP = 'Ballon sonore'
order by F.DateF, C.NomC ASC


Message édité par Tamahome le 26-04-2004 à 22:28:22

---------------
Hobby eien /人◕ ‿‿ ◕人\
n°182002
cartman200​2
Posté le 26-04-2004 à 23:12:56  profilanswer
 

merci bcp l'ami putain suis certain me suis bien planté lol

n°182770
E-Nyar
I ain't no nice guy after all
Posté le 28-04-2004 à 17:52:55  profilanswer
 

Voilà comment j'aurais fait, tu peux remplacer les "In" par des jointures (sauf pour la 9) mais c'est moins performant.
 


1)Select F.Datepaiement
  From Facture F, Client C
  Where F.NumC# = C.NumC
  And   C.NomC = "Au bulot charnu"
 
2)Select distinct VilleC
  From Client
 
3)Select NumF, DateF, NumC#
  From Facture  
  Where Datepaiement is Null  
  Order By DateF
 
4)Select count(*)
  From Facture F
  Where NumF in  
  (Select Numf#
   From Ligne
   Where NumP# = 2712)
 
5)Select Sum (PoidsP)
  From Produit
  Where NumP in  
  (Select Nump#  
   From Ligne
   Where NumF# = 12)
 
6)Select distinct LibelléP
  From Produit
  Wehre Nump# in
  (Select Distinct Nump#
   From Ligne  
   Where Numf# in
   (Select Numf
    From Facture
    Where DateF = 25/07/2002)
 
7) Select Sum(MontantHTF)
   From Facture
   where tochar(DateF ,'YYYYMM') = Tochar (today(), 'YYYYMM')
 
8) Select Sum(Montant TTCF - MontantHTF)
   From Facture
   where tonum(tochar(DateF ,'YYYYMM')) between
   ToNum(Tochar (today(), 'YYYYMM')) and  
   (ToNum(Tochar (today(), 'YYYYMM')) - 3)
 
en priant très fort qu'on ne fasse pas cette requete avant le mois d'avril amis j'avais pas envie de m'emmerder à faire tous les cas possibles
 
9) Select Count(*)
   From Ligne
   Where Nump# =  
   (Select NumP
    From Produit
    Where PrixHTP =
    (Select MAX(PrixHTP)
     From Produit)
 
10)Select Count(*)
   From Ligne
   Where Nump# =  
   (Select NumP
    From Produit
    Where NumT# in  
    (Select NumT
     From Type
     Where LibelléT = 'Accesoires')
 
11) select count (Nump)
    from produit
    Where NumT# in  
    (Select NumT
     From Type
     Where LibelléT = 'Accesoires')
    And   Nump in
    (select distinct (Nump#)
     from Ligne
     where NumF# in
     (Select NumF
      From Facture
      Where DatePaiement is not null))
 
12) select F.DateF, C.NumC, C.TelC
    From   Facture F, Client C
    Where  F.Numc# = C.Numc
    And Numf in
    (select Numf#
     from Ligne
     Where Nump# in  
     (select Nump
      from produit
      Where NumT# in  
      (Select NumT
       From Type
       Where LibelléT = 'Ballon Sonore'))
    order by F.DateF, C.NumC
 
13) je suppose que c'est le taux de TVA ?
 
    Select Average (((MontantTTCF - MontantHTF)/MontantHTF)*100))
    From Facture
 
14) je suppose que CodeC est le code postal
 
    Select Numc, NomC
    From Client
    Where Cat(Tochar(CodeC), 0, 2) = 54


 
si tu as besoin d'explication sur certains points, n'hesite pas


Message édité par E-Nyar le 28-04-2004 à 17:56:37
mood
Publicité
Posté le 28-04-2004 à 17:52:55  profilanswer
 

n°182771
Tamahome
⭐⭐⭐⭐⭐
Posté le 28-04-2004 à 17:55:42  profilanswer
 

en DB2, les jointures sont moins couteuses que les IN (pour les autres SGBD je sais pas)


---------------
Hobby eien /人◕ ‿‿ ◕人\
n°182776
E-Nyar
I ain't no nice guy after all
Posté le 28-04-2004 à 18:00:12  profilanswer
 

Tamahome a écrit :

en DB2, les jointures sont moins couteuses que les IN (pour les autres SGBD je sais pas)


 
Pour Oracle ou SQL Plus, le "In" est moins couteux que la jointure, ce qui est logique :
en effet, il commence par un premier select, il en fait une liste de valeur (avec un index ça peut aller très vite) ensuite il n'a plus qu'à comparer la valeur de la ligne en cours avec les valeurs de sa liste (de préférence en distinct) au lieu de comparer sa valeur avec toutes les valeurs de la table.
 
bien sûr ceci n'est valable que si le nombre d'enregistrement dans la table "de l'autre côté du IN" est très inférieur au nombre de valeur possibles.

n°182794
Tamahome
⭐⭐⭐⭐⭐
Posté le 28-04-2004 à 18:26:26  profilanswer
 

E-nyar a écrit :

Pour Oracle ou SQL Plus, le "In" est moins couteux que la jointure, ce qui est logique :
en effet, il commence par un premier select, il en fait une liste de valeur (avec un index ça peut aller très vite) ensuite il n'a plus qu'à comparer la valeur de la ligne en cours avec les valeurs de sa liste (de préférence en distinct) au lieu de comparer sa valeur avec toutes les valeurs de la table.
 
bien sûr ceci n'est valable que si le nombre d'enregistrement dans la table "de l'autre côté du IN" est très inférieur au nombre de valeur possibles.


 
sous db2 ca genere des log en +, ca remplit des tables temporaires en + (j'ai deja vu plusieurs Go de bouffer comme ca, pour une seule requete), ca consomme du cpu en + et ca bouffe de la ram en + (deja explosé un serveur a 2 Go de ram)


---------------
Hobby eien /人◕ ‿‿ ◕人\
n°183588
cartman200​2
Posté le 30-04-2004 à 14:35:14  profilanswer
 

merci bien a vous tous vous sql on s'y perd assez vite! j'ai revu certains points et j'ai compris pas mal de chose grace a vous...

n°183595
E-Nyar
I ain't no nice guy after all
Posté le 30-04-2004 à 14:49:42  profilanswer
 

de rien, si on peut te faire profiter de notre loooonngue expérience qui m'a surtout appris que quand tu sais te débrouiller en SQL/BDD t'es le maître de l'univers ;)
 
hesites pas à demander plus d'info si tu penses que certains points te semblent obscurs !
 
"SQL is not a concept, it's a way of life !" :)


Aller à :
Ajouter une réponse
 

Sujets relatifs
Recherche Developpeur ASP/SQL & newsers volontairesBTS IG : cherche un MCD pour l'activité SQL
Access : Help for my MCD : les requetes SQLOu faire une formation Oracle PL/SQL ?
Cherche sur region Nord prog PHP SQL FLASHcherche site a concevoir en PHP/SQL
[RCH] Administrateur NT, SQL SERVEUR, assez urgentPropose CDD 6 mois et stages environnement Web : ASP/SQL/HTML
Plus de sujets relatifs à : SQL


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)