Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2011, 17h52   #1
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 39
Points : 39
Envoyer un message via MSN à TotorLeCastor
Par défaut Conversion d'un SELECT en ORACLE

Bonjour à tous,
Voilà dans l'idée la requête que j'ai actuellement et que je dois convertir pour ORACLE.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
SELECT
	t1.col1,
	t1.col2,
	t1.col3,
	SUM(t1.col4),
	t2.col1,
	t2.col2,
	t2.col3,
	t2.col4,
FROM
	table1 t1
	table2 t2
WHERE
	t1.col1 = t2.col1
ORDER BY t1.col2 DESC
GROUP BY t1.col1
LIMIT 10,15
J'ai tenté de l'encapsuler dans une sous-requête et d'utiliser ROWNUM mais ça m'a pas marché.
Je me suis penché sur le OVER(PARTITION BY ...) mais j'ai rien compris du tout
Je suis persuadé que d'autre ici ont rencontré le même problème que moi mais la recherche sur le forum n'a rien donné de concluant.

Merci d'avance
TotorLeCastor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 19h11   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Pagination
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 09h43   #3
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 39
Points : 39
Envoyer un message via MSN à TotorLeCastor
De mémoire, cette solution était incompatible avec le group by
TotorLeCastor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 11h24   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Citation:
Envoyé par TotorLeCastor Voir le message
De mémoire, cette solution était incompatible avec le group by
Ou peut être que votre requête est incompatible avec le group by
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
Connected TO Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 
Connected AS mni
 
SQL> define N = 2
SQL> define pg = 3
SQL> 
SQL> SELECT
  2          department_id, tot_sal, department_name
  3  FROM    (
  4          SELECT  department_id, tot_sal, department_name, rownum rn
  5          FROM
  6                  ( SELECT e.department_id, Sum(e.salary) Tot_Sal, d.department_name
  7                      FROM hr.departments d
  8                           JOIN
  9                           hr.employees e
 10                        ON (d.department_id = e.department_id)
 11                    GROUP BY e.department_id, d.department_name
 12                    ORDER BY e.department_id )
 13          WHERE
 14                  rownum <= &N * &pg
 15          )       v1
 16  WHERE
 17          v1.rn > (&N-1) * &pg
 18  ORDER BY
 19          rn
 20  /
 
DEPARTMENT_ID    TOT_SAL DEPARTMENT_NAME
------------- ---------- ------------------------------
           40       6500 Human Resources
           50     156400 Shipping
           60      28800 IT
 
SQL>
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/05/2011, 14h00   #5
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 73
Points : 39
Points : 39
Envoyer un message via MSN à TotorLeCastor
Citation:
Envoyé par mnitu Voir le message
Ou peut être que votre requête est incompatible avec le group by
Merci pour ton aide précieuse.

Je suis reparti de l'exemple pour construire ma requête au lieu de repartir de ma requête originale.
TotorLeCastor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h57.


 
 
 
 
Partenaires

Hébergement Web