Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 30/01/2012, 17h51   #1
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 84
Points : 18
Points : 18
Par défaut [2k5] Requete Select Union sauf pour id=+1

Bonjour.

J'ai un souci avec une requete sql.
J'ai 2 tables qui stocks des passages:

tabPassage1(id,date,type)
(1,"11/12/2011 12:16:17",5)
(4,"11/12/2011 12:16:23",4)
(5,"11/12/2011 12:30:52",99)
(7,"11/12/2011 12:35:52",4)
(8,"11/12/2011 12:36:52",2)

tabPassage2(id,date)
(2,"11/12/2011 12:16:17")
(3,"11/12/2011 12:16:23")
(6,"11/12/2011 12:30:52")

Je veux récupérer les infos des 2 tables (UNION ALL) sauf celles de tabPassage2 qui ont un id = tabPassage1.id+1 and tabPassage1.type=99
soit ici, result :
(id,date)
(1,"11/12/2011 12:16:17")
(2,"11/12/2011 12:16:17")
(3,"11/12/2011 12:16:23")
(4,"11/12/2011 12:16:23")
(5,"11/12/2011 12:30:52")
(7,"11/12/2011 12:35:52")
(8,"11/12/2011 12:36:52")

L'id 6 ne doit donc plus apparaitre.

Une idée?
Merci
Stef.
sdisp+ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 18h08   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
"2k5" signifie bien "SQL-Server 2005" ?

Pour la réponse :
Code SQL :
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
;WITH tabPassage1 (id, date, type) AS
(
SELECT 1, convert(datetime, '11/12/2011 12:16:17', 103),  5 union ALL
SELECT 4, convert(datetime, '11/12/2011 12:16:23', 103),  4 union ALL
SELECT 5, convert(datetime, '11/12/2011 12:30:52', 103), 99 union ALL
SELECT 7, convert(datetime, '11/12/2011 12:35:52', 103),  4 union ALL
SELECT 8, convert(datetime, '11/12/2011 12:36:52', 103),  2
)
  ,  tabPassage2(id, date) AS
(
SELECT 2, convert(datetime, '11/12/2011 12:16:17', 103) union ALL
SELECT 3, convert(datetime, '11/12/2011 12:16:23', 103) union ALL
SELECT 6, convert(datetime, '11/12/2011 12:30:52', 103)
)
SELECT id, date
  FROM tabPassage1
 UNION ALL
SELECT t2.id, t2.date
  FROM tabPassage2 AS t2
 WHERE NOT EXISTS (SELECT NULL
                     FROM tabPassage1 AS t1
                    WHERE t1.type = 99
                      AND t1.id = t2.id - 1)
 ORDER BY id ASC
 
id          date
----------- -----------------------
1           2011-12-11 12:16:17.000
2           2011-12-11 12:16:17.000
3           2011-12-11 12:16:23.000
4           2011-12-11 12:16:23.000
5           2011-12-11 12:30:52.000
7           2011-12-11 12:35:52.000
8           2011-12-11 12:36:52.000
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h17   #3
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 84
Points : 18
Points : 18
Merci Waldar pour ta réponse, oui je parlais bien de SQL Server 2005, mais je me suis planté j'étais sous Oracle 10g en faite!
Mais ta requête fonctionne dessus également.

Merci beaucoup.L
sdisp+ 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 07h01.


 
 
 
 
Partenaires

Hébergement Web