Ho un elenco contatti che possono essere fornitori (F), clienti (C) o altro(B) presenti su due tabelle.
Ho fatto la classe documentale con la union mettendo insieme le due tabelle interessate con l'intenzione di filtrare il pannello in base all'anagrafica interessata.
Il problema sono i filtri. Senza non ho nessun problema.
Inserendoli, nel momento in cui vado ad utilizzare la classe sulla schermata, mi restituisce l'errore "The multi-part identifier "A.NOMECAMPO" could not be bound" per ogni filtro.
Ho notato che se sull'IDE vado sulla query della classe e chiedo di visualizzare i dati, mi crea la seguente query:
select
A.ANTIPCON as ANTIZCONTRE1,
A.ANCODICE as ANCOZCONTRE1,
LTRIM(
RTRIM(A.ANDESCRI)
) as ANDEZCONTRE1,
LTRIM(
RTRIM(A.ANDESCR2)
) as ANDEZCONTRE2
from
DEMOCONTI A
where
(
(A.ANDTOBSO IS NULL)
OR A.ANDTOBSO < convert(
datetime,
round(
convert(
float,
getdate()
),
0,
1
)
)
)
and (A.ANTIPCON <> 'G')
UNION ALL
select
'B',
B.CLCODCLI,
LTRIM(
RTRIM(B.CLDESCRI)
),
''
from
DEMOCLI_VEND B
where
(
(B.CLDTOBSO IS NULL)
OR B.CLDTOBSO < convert(
datetime,
round(
convert(
float,
getdate()
),
0,
1
)
)
)
La query ha i filtri impostati divisi per query a cui si applicano, mentre a runtime viene generata la seguente query che va in errore:
select
A.ANTIPCON as ANTIZCONTRE1,
A.ANCODICE as ANCOZCONTRE1,
LTRIM(
RTRIM(A.ANDESCRI)
) as ANDEZCONTRE1,
LTRIM(
RTRIM(A.ANDESCR2)
) as ANDEZCONTRE2
from
DEMOCONTI A
UNION ALL
select
'B',
B.CLCODCLI,
LTRIM(
RTRIM(B.CLDESCRI)
),
''
from
DEMOCLI_VEND B
where
(
(A.ANDTOBSO IS NULL)
OR A.ANDTOBSO < convert(
datetime,
round(
convert(
float,
getdate()
),
0,
1
)
)
)
and (A.ANTIPCON <> 'G')