Requête SQL selon conditions

Requête SQL selon conditions - PHP - Programmation

Marsh Posté le 07-01-2011 à 00:24:15    

Bonjour,
 
Je souhaite réaliser une requête SQL sous PHP avec des conditions, et j'ai besoin d'aide :)  
 
Dans ma base SQL, j'ai plusieurs champs date "date1, date2, date3, date4, date5" et il faut que je puisse récupérer la dernier date ajouter dans l'ordre date1 2 3 ..etc  
 
mais il peut y avoir une date dans le champs date1, 2...  mais pas dans les autres, et c'est la dernière que je souhaite afficher donc je ne sais meme pas si cela est possible.
 
Merci de votre aide
 
MAx  

Reply

Marsh Posté le 07-01-2011 à 00:24:15   

Reply

Marsh Posté le 07-01-2011 à 08:53:41    

ton schéma de base de données me semble un peu tordu  
 
SELECT * from table ORDER BY date1 DESC, date2 desc, date3 desc, date4 desc , date5 desc  
 

Reply

Marsh Posté le 07-01-2011 à 09:31:28    

LIMIT 1
:o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2011 à 09:35:53    

maxdata a écrit :

Bonjour,
 
Je souhaite réaliser une requête SQL sous PHP avec des conditions, et j'ai besoin d'aide :)  
 
Dans ma base SQL, j'ai plusieurs champs date "date1, date2, date3, date4, date5" et il faut que je puisse récupérer la dernier date ajouter dans l'ordre date1 2 3 ..etc  
 


 
Change cette méthode de travail : si tu avais 30 dates, tu aurais fait 30 colonnes de date1 à date30 ?
 
La méthode propre consiste à créer une table qui contient toutes tes dates avec une clé étrangère (et un ordre si c'est vraiment utile)
 
Autre méthode un peu moins propre selon le RDBMS que tu utilises, tu peux utiliser un champ ARRAY
 
 

Reply

Marsh Posté le 07-01-2011 à 10:12:58    

+1 c'est la règle de base  quand c'est indéterminé comme ça.

Reply

Marsh Posté le 07-01-2011 à 22:03:19    

Merci pour vos réponses, la base de donnée est un import d'un fichier Excel qui provient d'un export sur un outil HP de ticket, et donc je n'ai pas choisi l'architecture

 

Mais je viens de me rendre compte que c'est encore plus complexe que ça dons j'ai besoin !!

 

en faite il faut que je face une requête qui dit " Si le champs toto1 ou toto2 ou toto3 est éqal a Fermé, récupérer la date date1, 2 ou 3 "

 

donc si :
toto1=Fermé afficher date1
toto2= Fermé afficher date2
toto3= fermé afficher date3 .... etc
 
le but pour moi est de récupérer les temps écoulés entre 2 dates, j'ai les dates de début fixe, mais les dates de fin aléatoire selon les affectations dans les tickets et de la valeur Fermé, donc j'ai autant de champs Date que d'affection du ticket.

 

Pour résumer, c'est la valeur qui est = Fermé, qui fait que je dois afficher la date correspondante

 

On peux faire ça dans une requête mySQL ?


Message édité par maxdata le 07-01-2011 à 22:04:32
Reply

Marsh Posté le 08-01-2011 à 08:48:28    

http://dev.mysql.com/doc/refman/5. [...] ement.html

Code :
  1. SELECT
  2.   IF(
  3.       toto1='fermé',
  4.       date1,
  5.       IF(
  6.          toto2='fermé',
  7.          date2,
  8.          IF(
  9.              toto3='fermé',
  10.              date3,
  11.              'Aucune date de fermé'
  12.           )
  13.       )
  14.    ) AS ma_date
  15. FROM ma_table_toute_pourrite
  16. ORDER BY ma_date DESC
 


Message édité par flo850 le 08-01-2011 à 08:49:50
Reply

Marsh Posté le 09-01-2011 à 03:34:25    

merci, c'est génial et ça marche nickel ;)

Reply

Marsh Posté le 09-01-2011 à 13:22:53    

J'ai une dernière demande, je souhaite calculer et afficher des stats sur les entrer identiques dans une table, par exemple j'ai les noms toto1, toto2, 3, 4...  qui apparait dans le champs "nom"
 
je souhaite calculer automatiquement le nombre d'entrer pour chaque toto et l'afficher pour des stats par nom.
 
Par exemple
 
toto1 = 59
toto2 = 21
toto3 = 18  
 
il me semble que cela devrait ressembler a ça non ?
SELECT COUNT(*) ...

Reply

Marsh Posté le 09-01-2011 à 15:38:46    

Vois la clause GROUP BY

Reply

Marsh Posté le 09-01-2011 à 15:38:46   

Reply

Marsh Posté le 09-01-2011 à 17:44:42    

OK j'ai trouvé merci, il reste une dernière requête a créer, qui je crois est la plus complexe !!

 

Il faut que je face une requête qui dit " Si la valeur toto1 ou toto2 ou toto3 est éqal a Fermé, récupérer  la valeur du champ titi1 titi2, 3 ou 4 et de me les compter par toto "
 

 

donc si :
toto1=Fermé afficher titi1 - 48
toto2= Fermé afficher titi2 - 21
toto3= fermé afficher titi3 .... etc

 

Alors la !! si quelqu'un a une piste pour m'aider, car je bloque


Message édité par maxdata le 09-01-2011 à 22:14:03
Reply

Marsh Posté le 09-01-2011 à 21:04:54    

tu pexu arreter avec les toto, ça embrouille ton discours  
 
ça veut dire quoi me les compter par toto ?

Reply

Marsh Posté le 09-01-2011 à 22:13:29    

je souhaite compter tout les "nom" dans mon champ "State1Author"
 
Il faut que je face une requête qui dit " toutes les valeurs etat1 ou etat2 ou etat3 est éqal a Fermé, récupérer  la valeur du champ State1Name State2Name, State3Name et de les compter afin d'avoir des stats"
 
en faite je veux compté tout les noms en fonction d'un autre champs si il est egal a Fermé
 
je veux savoir qui a fermé des tickets et combien par personne :)


Message édité par maxdata le 09-01-2011 à 22:24:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed