Accueil > Forum > > > > comment résoudre cette requete ?
comment résoudre cette requete ?
dimanche 25 mai 2008 à 12:41:08 |
comment résoudre cette requete ?

sikove
|
salut tout le monde, je suis vraiment coincé avec cette requete : - afficher le nom, salaire, departement et le salaire moyen du departement, pour tout les employés qui ont un salaire moyen>= sal moyen de leurs departements ce que j'ai essayé de faire : select avg(sal) from emp as e group by job having avg(sal)>=all(select avg(sal) from emp as r group by depn) and e.depn=(select depn from emp as r where e.depn=r.depn)
mais ça donne des erreurs, et en plus impossible d'ajouter le nom des employés dans la premiere selection ... une idée svp ? merci
|
|
dimanche 25 mai 2008 à 18:54:07 |
Re : comment résoudre cette requete ?

yann_lo_san
|
Salut,
il ne faut pas imbriquer les group by ! Il faut passer par une sous-requete de référence , Voici le test en Transact-SQL (sql-server) :
-- Exemple de table avec quelques données declare @employe table(nom varchar(35), dept varchar(10), salaire money) insert into @employe values('nom1', '13', 1000) insert into @employe values('nom2', '13', 1500) insert into @employe values('nom3', '27', 2000) insert into @employe values('nom4', '10', 1200) insert into @employe values('nom5', '75', 900) insert into @employe values('nom6', '75', 2500) -- Requete avec une reference à une sous-requete (appelée ref) select t1.nom as 'NOM', t1.salaire as 'SALAIRE', ref.dept as 'DEPT', ref.avgSalaire as 'SALAIRE MOYEN DU DEPT' from @employe t1, (select t2.dept, avg(t2.salaire) as 'avgSalaire' from @employe t2 group by t2.dept) as ref where t1.dept = ref.dept and t1.salaire >= ref.avgSalaire order by t1.dept
-- Le résultat est :
NOM SALAIRE DEPT SALAIRE MOYEN DU DEPT ----------------------------------------------------------------- nom4 1200.0000 10 1200.0000 nom2 1500.0000 13 1250.0000 nom3 2000.0000 27 2000.0000 nom6 2500.0000 75 1700.0000
|
|
dimanche 25 mai 2008 à 22:06:59 |
Re : comment résoudre cette requete ?

sikove
|
ah ok je savais pas qu'on pouvait faire ce truc ^^
j'ai d'autres requetes auquel je n'ai pas trouvé la réponse :
- obliger la majuscule, et doit contenir au moins 2 caratéres (nom char) - la premiere caractere s'elle est renseigné, doit etre comprios entre a et z (titre char) - sexe s'il est renseigné, ne doit accepter que les valeurs m et f (sexe char)
tu pourrais m'aider stp ?
merci
|
|
lundi 26 mai 2008 à 20:35:08 |
Re : comment résoudre cette requete ?

yann_lo_san
|
Rebonjour,
Ben va falloir commencer à bosser un peu non ?
Bon voilà pour tes problèmes :
-- la fonction upper pour les majuscules, la fonction len pour la taille d'une chaine : -- et un pattern like pour avoir la première lettre entre a et z
selectupper(nom), titre from @employe wherelen(nom) >= 2 and titre like'[a-z]%'
-- Concernant la contrainte sur le sexe -- voilà la solution facile et plutot bète car elle rejette tous les champs qui n'ont pas les caracteres m ou f
and sexein('m', 'f')
-- voilà une solution plutot technique : --Création d' une règle de base de donnée liée à la colonne voulue.
USE master
CREATE RULE rule_sexe AS @valeursin('m', 'f') or @valeur is null EXEC sp_bindrule 'rule_sexe' , 'employe.sexe'
-- A chaque INSERT dans la colonne sexe, la contrainte s'active
|
|
lundi 26 mai 2008 à 22:52:41 |
Re : comment résoudre cette requete ?

sikove
|
merci, y'a des trucs que je savais pas ^^
enfaite dans la question 1 c'etait en realité une constrainte à faire : il faut obliger que le champ soit majuscule, j'ai essayé ça
constraint test check( (upper(champ)=champ))
mais cela n'a rien donné.... tu sais comment faire stp ?
merci encore
|
|
mardi 27 mai 2008 à 13:36:18 |
Re : comment résoudre cette requete ?

yann_lo_san
|
Salut,
Je peux t'aider même si cela est assez facile à déduire :
Les chaine non unicode (varchar) sont des suites de nombres (ASCII), le a est different du A dans la suite ascii.
On en déduit donc ceci :
create table bidule ( c1 varchar(35)check(ascii(c1)=ascii(upper(c1))) );
|
|
Cette discussion est classée dans : moyen, requete, salaire, sal, depn
Répondre à ce message
Sujets en rapport avec ce message
aide requete [ par kamikaz666 ]
Bonjour,Je voudrais avoir la réponse de la requête suivante:"les 3 meilleurs salaires de la table employés"j'ai essayé la requête suivante mais ça ne
Probleme requete avec LIKE [ par Bigbangss ]
Bonjour,Voila je n'arrive pas à exprimer ma requete.Je souhaiterai afficher tout les éléments d'un enregistrement présents dans une table où une des c
Requete de classement avec plusieurs tables [ par slider04 ]
Bonjour, j'ai deux tables, une table client et une table temps. je souhaiterais en ressortir le classement de temps selon le niveau et le sexe pour le
base de donnée géolocalisation [ par pascb423 ]
Bonjour, j'ai une base de donnée qui contient les adresses ip d'après les pays. mon problème c'est que la requete que je fait me donne un résultat fau
requete MySQL [ par xactise ]
Bonjour et d'avance merci a ceux qui lisent mon post.j'ai un petit souci avec une requete SQL.j'explique ce que je souhaite faire : admetons qu'on est
jointure triple [ par petitnounoursjoyeux ]
Bonjour tout le monde, je galère depuis un bon moment, j'ai été voir divers forums et tuto, mais pas moyen de faire cette requete de #&#$!#% en gros :
requete [ par MANURELAIS ]
Salut à tous,Voilà j'ai besoin de vous car je n'arrive pas a faire:Une bd 2 tables (la base n'est pas de moi) Produit ( N°, NOM,) et Categorie(N°categ
besoin d'aide pour une requete sql [ par elfifie ]
J'ai une table Facture qui contient les champs ID_Facture et Montant.Une autre table Achat qui contient les champs Nom et ID_Facture.Sachant que chaqu
appeler un état avec 2 parametres [ par elfifie ]
J'arrive bien à ouvrir un état en lui envoyant 1 parametre en faisant :DoCmd.OpenReport stDocName, acPreview, , requeteoù requete = "[Champ] = 'MonCri
[curseur] insérer 3 premiers meilleurs salaires [ par sikove ]
Salut, voila ça fait un moment que je cherche comment faire cette requete : " inserer dans une table temporaire les 3 meilleurs salaires d'une table d
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MYSQLSERVERMYSQLSERVER par favella
Cliquez pour lire la suite par favella
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|