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
Problema inner join (o join)
giovedì 09 febbraio 2017 - 11.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
SQL Server 2008 R2
|
SQL Server 2008
mooova
Profilo
| Newbie
2
messaggi | Data Invio:
gio 9 feb 2017 - 11:05
Buongiorno a tutti, vorrei sottoporre alla vostra attenzione una query che mi restituisce un errore in prossimità del comando join.
Premetto che ho provato a cercare nel forum ma la funzione ricerca mi restituisce un errore 500 quiindi non ho potuto trovare nulla.
Premetto anche che sono molto acerbo di sql.
Ho provato a costruire una query che dovrebbe restituirmi tutti i valori della tabella PKF_FS_COLLECT_CH_NB che hanno come COLLECT_ID lo stesso della tabella PKF_FS_COLLECT. In sostanza, prima cerco i record fino a 60 giorni prima (nella tabella PKF_FS_COLLECT), di questi trovo quelli con COLLECT_ID dispari: a questo punto, vorrei creare una relazione uno a molti tra i valori trovati dalla mia select nella tabella PKF_FS_COLLECT (uno) e cerco i valori in tabella PKF_FS_COLLECT_CH_NB (Molti) che abbiano lo stesso COLLECT_ID
La query alla fine corvrebbe scrivere i risultati su di un file csv o txt, ma quello ci penserò dopo.
Spero di essere stato sufficientemente esaustivo nella spiegazione.
Fino al join la query funziona perfettamente, non appena introduco il join finisce la festa...
Mi permetto di postarvi il codice
La query è la seguente:
SELECT [COLLECT_ID]
,[DEVICE_ID]
,[COLLECT_NUMBER]
,[COLLECT_DATE]
,[UPDATE_DATE]
,[FINE_AMOUNT]
,[FINE_NUMBER]
,[REMB_AMOUNT]
,[REMB_NUMBER]
,[CURRENCY]
,[COLLECT_START_NUMBER]
,[COLLECT_GROUPED]
,[COLLECT_STATUS]
,[COMMENTS]
FROM PKF_FS_COLLECT where COLLECT_DATE >= DATEADD(day, -60, convert(date, GETDATE()))
and COLLECT_DATE < convert(date, GETDATE()) and COLLECT_NUMBER = COLLECT_START_NUMBER and (COLLECT_ID % 2) = 1 join dbo.PKF_FS_COLLECT_CH_NB on (PKF_FS_COLLECT.COLLECT_ID = PKF_FS_COLLECT_CH_NB.COLLECT_ID)
Ringrazio sin d'ora chi vorrà perdere un pò di tempo per aiutarmi a farmi capire dove sbaglio.
AGGIORNAMENTO:
a chi potesse servire, ho risolto in questo modo:
SELECT PKF_FS_COLLECT.COLLECT_ID
,[DEVICE_ID]
,[COLLECT_NUMBER]
,[COLLECT_DATE]
,[UPDATE_DATE]
,[FINE_AMOUNT]
,[FINE_NUMBER]
,[REMB_AMOUNT]
,[REMB_NUMBER]
,PKF_FS_COLLECT.CURRENCY
,[COLLECT_START_NUMBER]
,[COLLECT_GROUPED]
,[COLLECT_STATUS]
,[COMMENTS]
,PKF_FS_COLLECT_CH_NB.CHANNEL_ID
,PKF_FS_COLLECT_CH_NB.QUANTITY
,PKF_FS_COLLECT_CH_NB.VALUE
,PKF_FS_COLLECT_CH_NB.CURRENCY
FROM PKF_FS_COLLECT
join dbo.PKF_FS_COLLECT_CH_NB on (PKF_FS_COLLECT.COLLECT_ID = PKF_FS_COLLECT_CH_NB.COLLECT_ID)
where COLLECT_DATE >= DATEADD(day, -2, convert(date, GETDATE()))
and COLLECT_DATE < convert(date, GETDATE()) and COLLECT_NUMBER = COLLECT_START_NUMBER and (PKF_FS_COLLECT.COLLECT_ID % 2) = 1
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 !