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?
Version imprimable
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
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:
1
2
3
4
5
6 WITH t as ( SELECT * FROM TaTable) SELECT * from t )
Code:
1
2
3 SELECT * FROM (SELECT * FROM TaTable)
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
MichaelCode:
1
2
3
4 select mes_cols, sum(...) as mes_cols_sum into #t1 from ... -- puis select ... from #t1...
OK, par contre je n'ai pas trop compris l'exemple avec les tables temporaires si je veux faire :
Citation:
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:
1
2
3
4
5
6 CREATE TABLE #maTableTemporaire ( champ1 int, champ2 int, -- ... )
Arnaud
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:
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
Merci beaucoup pour votre aide et vos réponses
finalement, cette méthode me faisait une erreur de compilation
J'ai donc faisCitation:
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
Et cela fonctionne :D, bonne journéeCitation:
INSERT 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