Bonjour à tous, je voudrais faire comme sous oracle une requete contenant une autre faite avec un union pour mettre un group et order by à la fin.
est-ce possible sous sybase?
Bonjour à tous, je voudrais faire comme sous oracle une requete contenant une autre faite avec un union pour mettre un group et order by à la fin.
est-ce possible sous sybase?
Oui, à partir de la 12.5.3.
Michael
Michael Peppler
Membre de TeamSybase - www.teamsybase.com
"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
arf! j'utilise la 12.0.8, y a t-il un moyen de remédier à ce probleme avec ma version?
Salut !
Je connais pas trop Sybase, mais je suis en train de faire joujou avec...
Tu peux à priori utiliser les CTE :
remplace à priori :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 WITH t as ( SELECT * FROM TaTable) SELECT * from t )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM (SELECT * FROM TaTable)
![]()
(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...
Le pacblog : http://pacmann.over-blog.com/
Cela ne fonctionne pas non plus en tout cas avec ma version![]()
Le WITH ne fonctionne en effet pas avec ASE.
Pour résoudre ce problème en 12.0.x je pense qu'il faut passer par une ou plusieurs tables temporaires, du style
Michael
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select mes_cols, sum(...) as mes_cols_sum into #t1 from ... -- puis select ... from #t1...
Michael Peppler
Membre de TeamSybase - www.teamsybase.com
"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
OK, par contre je n'ai pas trop compris l'exemple avec les tables temporaires si je veux faire :
select col11, col12, col13
from table1
group by col11, col12
order by col11, col12
union
select col21, col22, col23
from table2
group by col21, col22
order by col21, col22
Dans ma procedure, je peux alimenter la meme table temporaire avec les deux requêtes l'une a la suite de l'autre?
Bonjour,
tu peux déclarer la structure de ta table :
Tu peux ensuite faire les insert que tu souhaites dedans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE #maTableTemporaire ( champ1 int, champ2 int, -- ... )
Arnaud
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère
Installation de Code::Blocks sous Debian à partir de Nightly Builds
Tu peux faire:
Maintenant le résultat de l'union des deux requêtes est dans #tab_tempo, qui peut ensuite être réutilisée dans une autre requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 select col11, col12, col13 into #tab_tempo from table1 group by col11, col12 order by col11, col12 union select col21, col22, col23 from table2 group by col21, col22 order by col21, col22
Je suggère de lire la doc Sybase sur la syntaxe de SELECT, et en particulier sur le comportement de SELECT ... INTO ...
Michael
Michael Peppler
Membre de TeamSybase - www.teamsybase.com
"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
Merci beaucoup pour votre aide et vos réponses
finalement, cette méthode me faisait une erreur de compilation
J'ai donc faisSELECT col11, col12, col13
INTO #tab_tempo
FROM table1
GROUP BY col11, col12
ORDER BY col11, col12
union
SELECT col21, col22, col23
FROM table2
GROUP BY col21, col22
ORDER BY col21, col22
Et cela fonctionneINSERT INTO #tab_tempo
SELECT col11, col12, col13
FROM table1
GROUP BY col11, col12
ORDER BY col11, col12
union
SELECT col21, col22, col23
FROM table2
GROUP BY col21, col22
ORDER BY col21, col22, bonne journée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager