Aide pour requete SQL - SQL/NoSQL - Programmation
Marsh Posté le 03-04-2012 à 10:57:40
Salut, 
 
Tu veux autant de résultats qu'il y en a dans la table : 
IDENTIF    REPONSE1    REPONSE2   REPONSE3 .......................... ETC 
 
ou seulement les 2 premiers : 
IDENTIF    REPONSE1    REPONSE2 
Marsh Posté le 03-04-2012 à 11:16:18
Merci pour ton aide 
 
 
Seulement REPONSE1 ET REPONSE2 :-) 
Mais pour information, je veux bien ta méthode pour avoir toutes les réponses ^^
Marsh Posté le 03-04-2012 à 13:47:35
Y a un truc que je ne comprend pas en fait. 
Tu ne parles pas du champ QUESTION dans tes résultats ? 
 
C'est pas très clair pour moi   
  
 
Tu peux ré-expliquer un peu mieux ?
Marsh Posté le 03-04-2012 à 13:57:05
oui, en  gros 
 
Je veux en une seule ligne pour chaque numéro d'identification donné (et seulement pour le type A) --> la réponse aux questions 001 et 002. 
 
exemple : 
IDENTIF   QUESTION     HEURE   REPONSE    TYPE  
0001          0001          111245   00X1          A  
0001          0001          081130   00X2          A  
0001          0002          031220   00X3          A  
0001          0003          134110   00X4          C  
0002          0001          111245   00X5          A  
0002          0001          081130   00X6          A  
0002          0002          031220   00X7          A  
0002          0003          134110   00X8          C  
 
Donnerait : 
IDENTIF   REPONSE1  "(NUMQUE = 001)"  REPONSE2   "(NUMQUE = 002)" 
0001        00X1                                   00X3 
0002        00X5                                   00X7 
 
Marsh Posté le 03-04-2012 à 14:06:55
Et le même IDENTIF peut avoir plusieurs REPONSE pour une même QUESTION ? 
IDENTIF   QUESTION     HEURE   REPONSE    TYPE   
0001          0001          111245   00X1          A   
0001          0001          081130   00X2          A   
 
Comment on sait laquelle prendre ? 
 
Avec l'heure j'imagine, mais si c'est pas le même jour ?
Marsh Posté le 03-04-2012 à 14:49:35
oui, elle peut 
 
On utilise l'heure la plus grande. 
Sur le jour, il y a déjà un filtre au préalable. 
 
Marsh Posté le 03-04-2012 à 15:03:09
Est-ce que ton SGBD accepte l'instruction LIMIT ?
Marsh Posté le 03-04-2012 à 15:33:48
Je pense qu'il faut que tu fasses une sous requête en numérotant tes lignes avec row_number qui doit fonctionner sur sql server. 
Ensuite tu remontes tes lignes numéro 1 dans une colonne et numéro 2 dans l'autre.
Marsh Posté le 04-04-2012 à 08:51:49
Voila comment je ferai: 
| Code : 
 | 
 
 
Le resultat donne bien ce que tu veux: 
| Code : 
 | 
 
Marsh Posté le 05-04-2012 à 08:39:24
Oula, je n'aurais jamais trouvé tout seul. 
 
Merci  
 
 
| Oliiii a écrit : Voila comment je ferai:  
   
   | 
 
Marsh Posté le 03-04-2012 à 09:34:50
Hello Tout le monde,
Petit soucis avec une requête sql .. je sèche un peu, si vous avez une idée.
J'ai un table remplie de cette façon :
IDENTIF QUESTION HEURE REPONSE TYPE
0001 0001 111245 0001 A
0001 0001 081130 0001 A
0001 0002 031220 0003 A
0001 0003 134110 0001 C
0002 0001 111245 0001 A
0002 0001 081130 0001 A
0002 0002 031220 0003 A
0002 0003 134110 0001 C
J'aimerais avoir des lignes de ce type (avec type = A)
IDENTIF REPONSE1 REPONSE2
J'ai essayé avec des left join .. mais c'est trop lourd pour le pocket pc.
Pour le moment, j'en suis la
select MAX(HEURE) as HEURE,CASE MIN(QUESTION) WHEN '001' THEN ??REPONSE?? else 'X' end REPONSE1,CASE MAX(QUESTION) WHEN '002' THEN ??REPONSE?? else 'X' end REPONSE2 from TABLE1 as A where (QUESTION = '001' OR QUESTION = '002') AND TYPE = 'A' GROUP BY IDENTIF
Je ne sais pas comment récupérer dans ma requête la "réponse" correspondant à la ligne de la question 001 ou la ligne de la question 002
j'espère que j'ai bien expliqué mon problème ^^
Merci d'avance pour votre aide :-)