Salut
Quand on utilise la clause group by, il est possible de faire des sommes avec la fonction sum sur des colonnes de types numérique. Moi j'aimerai pouvoir concatener des colonnes de type chaine. Comment faire ?
Merci
Salut
Quand on utilise la clause group by, il est possible de faire des sommes avec la fonction sum sur des colonnes de types numérique. Moi j'aimerai pouvoir concatener des colonnes de type chaine. Comment faire ?
Merci
Si ta question est de recuperer dans le select un champ concatené, il suffit de faire :Si a et b sont du meme type bien sur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT a + b from table1
sauf que je veux pas concatener 2 colonnes distinctes
imaginons 2 lignes à 3 colonnes :
Je voudrais :A B C
A B D
A B CD
tu peut essayer en faisant une jointure sur la meme table et concatener les deux colonnes. Par exemple, immaginons une table test avec deux champs A et B, si on a la requete suivante :
Par contre on a la concatenation dans les deux sens, pour reprendre ton exemple, on a A B CD mais aussi A B DC....[/quote]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select test.A, t.A, test.B, t.B, test.B + t.B from test inner join test t on test.A = t.A where test.B <> t.B
oui c'est bien ce que je pensais, faut jouer avec les jointures mais ca m'arrange pas, car je peux avec un nombre indéfini de lignes
au bout d'un moment, le langage SQL a ses limites ....
et bien souvent ca nous arrange pas.
Peut etre qu'au niveau de la conception, les choses n'ont pas bien ete pensé ?
Est ce que vous pouvez étendre votre exemple sur plusieurs cas pour plus de compréhension s.v.p.Envoyé par Oluha
c'est plutôt que je dois sortir un état à la mormoilenoeud avec une liste de produits pour chaque règlement, le tout devant se trouver sur une seule ligne. J'ai bidouillé dans mon prog pour obtenir ce que je veux mais ca aurait été plus propre de concatener en SQL.
Envoyé par WOLO Laurent
voilà ce que je ressors sans grouper et ce que je voudrais obtenir :A B C
A B D
B A C
D E F
D E G
D E H
Je veux grouper les 2 premiers colonnes et concatener les valeurs de la 3eme.A B CD
B A C
D E FGH
Pourquoi ne pas utiliser une procedure stockee avec deux curseurs ?
Le premier curseur sélectionne les clefs (les deux premières colonnes)
le second selectionne les enregistrements pour la clef courante, concatene le résultat dans une variable et depose à l'issue le résultat dans une table temporaire de travail.
oui j'avais pensé passer par une table mais le soucis c'est qu'avec SQL report server je crois qu'on peut faire que des datasets, du moins je n'ai pas trouvé comment executer une requête et faire du code pour un rapport![]()
Je vous propose d'utiliser la commande "EXECUTE"
Reportez vous à l'aide den ligne (celle de l'analyseur de requête) vous y trouverez dans la même rubrique l'utilisation d'un curseur.
PS: Attention toutefois, les exemples de code de l'aide en ligne peuvent ne pas marcher (je l'ai remarqué, et ce pour des problèmes de d'interprétation de la quote (') et de l double quote ("), ceux situés sur le site de microsoft eux fonctionnent.
Doc en ligne SQL 2005 (compatible pour transac SQL)
http://msdn2.microsoft.com/fr-fr/library/ms310245(MSDN.10).aspx
Doc téléchrageable SQL 2000
http://www.microsoft.com/france/sql/utilisez/infotech/info/info.asp?mar=/france/sql/telecharge/info/DocProduit.html.
euh je sais utiliser les procédures stockées et les curseurs dans l'analyseur ou dans un programme mais apparemment SQL reports (sous visual studio net) n'accepte que des requêtes select en dataset pour générer un rapport.
Désolé mais je ne connais ni sql report ni visual studio.
Partager