Problema inner join (o join)

giovedì 09 febbraio 2017 - 11.05
Tag Elenco Tags  SQL Server 2008 R2  |  SQL Server 2008

mooova Profilo | Newbie

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
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5