OVH Cloud OVH Cloud

problème avec une requete sql

6 réponses
Avatar
Steve B.
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la même
ligne. Je voudrais les récupérer en une seule ligne pour afficher un tableau
du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se peut
qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un d'entre
vous saura m'aider.

Merci,
Steve

6 réponses

Avatar
Thierry
SELECT P, MAX(A), MAX(B) FROM table GROUP BY P

--
Thierry


"Steve B." a écrit dans le message
de news:
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la même
ligne. Je voudrais les récupérer en une seule ligne pour afficher un
tableau du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se
peut qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un
d'entre vous saura m'aider.

Merci,
Steve



Avatar
Med Bouchenafa
Quelque chose du genre
SELECT P, SUM(A), SUM(B)
FROM tableName
GROUP BY P

--
Bien cordialement
Med Bouchenafa

"Steve B." wrote in message
news:
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la même
ligne. Je voudrais les récupérer en une seule ligne pour afficher un
tableau du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se
peut qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un
d'entre vous saura m'aider.

Merci,
Steve



Avatar
Steve B.
c'est du nvarchar...
"Med Bouchenafa" a écrit dans le message de news:

Quelque chose du genre
SELECT P, SUM(A), SUM(B)
FROM tableName
GROUP BY P

--
Bien cordialement
Med Bouchenafa

"Steve B." wrote in message
news:
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la
même ligne. Je voudrais les récupérer en une seule ligne pour afficher un
tableau du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se
peut qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un
d'entre vous saura m'aider.

Merci,
Steve







Avatar
Fr
Tiens, juste histoire de faire compliqué ;-)

Select ISNULL(t1.ID,t2.ID),
t1.A,
t2.B
from (select ID,P,A from t WHERE A is not null) t1 FULL OUTER JOIN
(select ID,P,B from t WHERE B is not null) t2 ON (t1.P=t2.P)

Ca marche aussi s'il n'y a qu'une ligne.

@+




Steve B. wrote:
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la même
ligne. Je voudrais les récupérer en une seule ligne pour afficher un tableau
du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se peut
qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un d'entre
vous saura m'aider.

Merci,
Steve




Avatar
Fr
J'ai oublié la colonne P dans le select
ajoute ISNULL(t1.P,t2.P)

Mais franchement, c'est juste histoire de dire qu'il y a plusieur façon
de faire, celle-ci n'étant pas la meilleure, celle de Thierry est la
plus simple et plus rapide.

@+

wrote:
Tiens, juste histoire de faire compliqué ;-)

Select ISNULL(t1.ID,t2.ID),
t1.A,
t2.B
from (select ID,P,A from t WHERE A is not null) t1 FULL OUTER JOIN
(select ID,P,B from t WHERE B is not null) t2 ON (t1.P=t2.P)

Ca marche aussi s'il n'y a qu'une ligne.

@+




Steve B. wrote:

Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la
même ligne. Je voudrais les récupérer en une seule ligne pour afficher
un tableau du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se
peut qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un
d'entre vous saura m'aider.

Merci,
Steve





Avatar
Steve B.
Marche impec... merci à vous tous


"Thierry" a écrit dans le message de news:

SELECT P, MAX(A), MAX(B) FROM table GROUP BY P

--
Thierry


"Steve B." a écrit dans le message
de news:
Salut,

J'ai dans une table des enregistrements qui ressemblent à ceci :

ID P A B
1 abc NULL x
2 abc z NULL

En gros, j'ai deux informations pour P valant abc, mais jamais sur la
même ligne. Je voudrais les récupérer en une seule ligne pour afficher un
tableau du genre :

abc z x

Sachant sur une ligne, jamais A et B auront une valeur. De plus, il se
peut qu'il n'y ait pas deux lignes pour abc


Après quelques heures de casse tete, je bloque et j'espère que l'un
d'entre vous saura m'aider.

Merci,
Steve