Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Select con left outer join che non funziona
martedì 14 ottobre 2014 - 11.28
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Windows Server 2008 R2
paolagumi
Profilo
| Junior Member
59
messaggi | Data Invio:
mar 14 ott 2014 - 11:28
Buongiorno a tutti,
in un db sql server 2008 r2, ho queste due tabelle :
Domande, con colonne: Matricola, DataInizio, DataFine
Iscrizioni, con colonne: Matricola, Data
Sembrerà banale ma...
vorrei estrarre tutte le matricole che per una certa data hanno domanda valida (sulla prima tabella) ma non hanno una iscrizione (sulla seconda tabella).
Ho fatto così:
declare @Data date
set @Data = CAST('2014-10-16' as date)
select Domande.Matricola from Domande
left outer join Iscrizioni on
Domande.Matricola = Iscrizioni.Matricola
where Iscrizioni.Matricola is null and
Domande.DataInizio <=@Data and
Domande.DataFine >=@Data and
Iscrizioni.Data = @Data
order by Domande.Matricola
Non estrae nulla....e non va bene. Dove sbaglio?
Grazie a tutti e buona giornata,
Paola
HolidaySoft.it
Profilo
| Junior Member
100
messaggi | Data Invio:
mar 14 ott 2014 - 11:53
Ciao,
prova così:
SELECT * FROM DOMANDE A LEFT OUTER JOIN (SELECT * FROM ISCRIZIONI WHERE ISCRIZIONI.DATA = @Data) ON DOMANDE.MATRICOLA = ISCRIZIONI.MATRICOLA
WHERE @Data BETWEEN A.DATA_INIZIO AND A.DATA_FINE
AND ISCRIZIONI.MATRICOLA IS NULL
Michele
http://www.HolidaySoft.it
http://www.GarganoSapori.it
- Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it
- Crea la Vetrina per il tuo Ristorante
paolagumi
Profilo
| Junior Member
59
messaggi | Data Invio:
mar 14 ott 2014 - 12:02
non funziona, mi da errore di sintassi sulla ON
paolagumi
Profilo
| Junior Member
59
messaggi | Data Invio:
mar 14 ott 2014 - 12:08
Ci sono riuscita:
declare @Data as date
set @Data = CAST('2016-10-16' as date)
select * from Domande A
left outer join (SELECT Matricola as Matri FROM Iscrizioni where Iscrizioni.Data = @Data) Mat
on A.Matricola = Matri
where @Data BETWEEN DataInizio AND DataFine
AND Matri IS NULL
ciao e grazie, il tuo suggerimento era quasi perfetto!!
HolidaySoft.it
Profilo
| Junior Member
100
messaggi | Data Invio:
mar 14 ott 2014 - 12:09
...... gli alias erano errati......
SELECT * FROM DOMANDE A LEFT OUTER JOIN (SELECT * FROM ISCRIZIONI WHERE ISCRIZIONI.DATA = @Data) B ON A.MATRICOLA = B.MATRICOLA
WHERE @Data BETWEEN A.DATA_INIZIO AND A.DATA_FINE
AND B.MATRICOLA IS NULL
http://www.HolidaySoft.it
http://www.GarganoSapori.it
- Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it
- Crea la Vetrina per il tuo Ristorante
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !