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 :-)