Ciao a tutti.
Ho un problema che non riesco a superare.
Ho una storedProcedure abbastanza complessa che mi fa il calcolo runtime (devo farla obbligatoriamente runtime per scelte strategiche del cliente) della classifica di un girone e funziona perfettamente.
Ora devo esportare i dati delle varie partite tra cui la posizione in classifica delle varie squadre dei vari gironi.
Girovagando su internet ho trovato la OpenQuery che utilizzata come qui sotto riportato funziona bene (108 è l'id del girone).
codice:
select * from openquery(LOCALSERVER,'dbo.usp_GIO_ClassificaTemporanea 108' ) temp
opportunamente modificata per metterla in join con la mia query di estrazione funziona.
codice:
...
left join openquery(LOCALSERVER,'dbo.usp_GIO_ClassificaTemporanea 108' ) temp on temp .CodiceSquadra=Partita.codiceSQCasa or temp .CodiceSquadra=Partita.codiceSQOspite
...
Il mio problema ora è parametrizzare l'id del girone. A quanto mi risulta la openquery non accetta variabili.
Dovrei realizzare una cosa simile:
codice:
...
left join openquery(LOCALSERVER,'dbo.usp_GIO_ClassificaTemporanea ' + Partita.IDGirone ) temp on temp .CodiceSquadra=Partita.codiceSQCasa or temp .CodiceSquadra=Partita.codiceSQOspite
...
ma ho come risultato
Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '+'.
Potrei modificare la stored per avere le classifiche di tutti i gironi senza passargli parametri e poi filtrare la join per IDGirone, ma devo gestire n gironi per m campionati, quindi rischierei di avere un fortissimo rallentamento delle prestazioni.
Ho trovato anche la soluzione che consiglia di realizzare la stringa della query a priori ma il mio parametro non è conosciuto prima dell'esequzione della query, e per di più il testo della query è talmente lungo che va un buffer overflow...
HELP!!!