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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]requete SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]requete SQL

n°2299257
yann7622
Posté le 17-04-2017 à 14:44:52  profilanswer
 

Bonjour,
 
Je suis sur phpmyadmin et je tente de réaliser une requête sql me permettant de répondre à la question suivante:  
 
Je veux avoir  la liste des maladies dans ma table "event_gd" qui reviennent sur au moins une période (deux années) qui sont au format YYYY-MM-DD.
 
Par exemple je veux avoir la liste de toute les maladies qui apparaissent au minimum une fois dans deux années au minimum différente.  
 
 
 
En espérant avoir été assez claire !  
 
Bonne journée  :)


Message édité par yann7622 le 24-04-2017 à 18:54:27
mood
Publicité
Posté le 17-04-2017 à 14:44:52  profilanswer
 

n°2299298
antac
..
Posté le 18-04-2017 à 11:10:30  profilanswer
 

Quelle est la structure de "event_gd" ?

n°2299299
Devil'sTig​er
Posté le 18-04-2017 à 11:56:33  profilanswer
 

Sans la structure, le plus simple est de trouver deux fois le résultat, et de croiser. Cad tu fais deux select (chaque select vérifie que pour l'année X tu as au moins 1x la maladie qui apparait), et ensuite tu croise les résultats avec INTERSECT: http://sql.sh/cours/intersect
 
Pour que intersect marche, il faut que les résultats soit comparable, donc il te faut par exemple SELECT maladie_name <blablabla> INTERSECT SELECT maladie_name <blablabla>

n°2299302
rufo
Pas me confondre avec Lycos!
Posté le 18-04-2017 à 13:57:51  profilanswer
 

Tu calcules le nb d'occurrences de chaque maladie par année (sous-requête) et tu gardes celles dont la somme du nb d'occurrences par année est >= 2.
Ex :  
SELECT t1.idmaladie, COUNT(Tmp.NBOCC) AS NB FROM OccurrencesMaladies t1 INNER JOIN
(SELECT st.idmaladie, FORMATAGE_DATE(st.datemaladie, "Y" ) AS Annee, COUNT(st.idoccurrence) AS NBOCC FROM OccurrencesMaladies st WHERE st.datemaladie BETWEEN date1 AND date2 GROUP BY st.idmaladie, Annee) AS Tmp ON (t1.idmaladie = Tmp.idmaladie)
GROUP BY t1.idmaladie HAVING NB >=  2


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2299339
antac
..
Posté le 18-04-2017 à 16:55:01  profilanswer
 

La solution de Devil's me parait plus jolie

n°2299343
rufo
Pas me confondre avec Lycos!
Posté le 18-04-2017 à 19:03:21  profilanswer
 

intersec est pas forcément dispo sur tous les sgbd il me semble.


Message édité par rufo le 18-04-2017 à 19:03:32

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2299367
h3bus
Troll Inside
Posté le 19-04-2017 à 08:14:37  profilanswer
 

Effectivement, a priori INTERSECT n'est pas disponible sous mySQL. Mais dans le lien de Devil il y a une proposition d'équivalent.


Message édité par h3bus le 24-04-2017 à 19:07:05

---------------
sheep++
n°2299695
yann7622
Posté le 24-04-2017 à 18:53:00  profilanswer
 

Merci pour vos réponses ! Tout fonctionne  :)  :)  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]requete SQL

 

Sujets relatifs
[microsoft query] étendre requête comme formule excelSQL Requete Union
[SQL] Question sur une requête[Excel] Création d'une requête SQL ?
Problème requête SQL: command not properly ended[SQL] Requete sur WSUS
[SQL/SAS] Requête qui ne fonctionne pasRequête SQL avec liaison multi-tables
[SQL] Requètes imbriquées ? 
Plus de sujets relatifs à : [RESOLU]requete SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR