sql access |
elliot |
10/06/2004 |
Difficoltà:
Medio
|
|
Salve
a
tutti,
e'
la
prima
volta
che
posto
un
messaggio
in
questo
forum.
Il
mio
problema
riguarda
una
query
sql
per
.mdb
con
una
funzione
di
aggregazione
MAX().
Se
lancio
tale
query
direttamente
da
access
il
risultato
é
esatto,
mentre
da
Visual
basic
mi
restituisce
anche
record
ripetuti.
La
query
é
costituita
da
3
tabelle
in
JOIN.
Qualcuno
sa
spiegarmi
il
perché
di
questo
comportamento?
Non
dovrebbe
essere
uguale
il
risultato
dal
momento
che
é
access
a
elaborare
la
query?
ADO
é
in
qualche
modo
responsabile?
Ecco
la
query
Select
clienti.ID_CLIENTE,
clienti.codice_cont,
clienti.ragione_sociale,
domini.nome_dominio,
domini.data_registrazione,
rinnovi.anno,
rinnovi.situazione,
rinnovi.fattura,
rinnovi.numero_fattura,
dateserial(max(rinnovi.anno)+1,datepart("m",domini.data_registrazione),datepart("d",domini.data_registrazione))
As
[Data
Scadenza],
datediff("d",now(),dateserial(max(rinnovi.anno)+1,datepart("m",domini.data_registrazione),datepart("d",domini.data_registrazione)))
As
[Giorni
mancanti]
FROM
rinnovi
INNER
JOIN
(clienti
INNER
JOIN
domini
On
clienti.ID_CLIENTE=domini.ID_CLIENTE)
On
rinnovi.ID_DOMINIO=domini.ID_DOMINIO
GROUP
BY
clienti.ID_CLIENTE,
clienti.codice_cont,
clienti.ragione_sociale,
domini.nome_dominio,
domini.data_registrazione,
rinnovi.anno,
rinnovi.situazione,
rinnovi.fattura,
rinnovi.numero_fattura
HAVING
datediff("d",now(),dateserial(max(rinnovi.anno)+1,datepart("m",domini.data_registrazione),datepart("d",domini.data_registrazione)))<=[Inserire
il
numero
di
giorni];
E
'
stata
partorita
dal
wizard
di
access
con
qualche
mia
aggiunta.
Il
cursore
é
adUseClient
Il
provider
é
Jet
4.0
La
struttura
delle
tabelle
é
la
seguente
Tabella
1
Clienti
(ID_CLIENTE,
...anagrafica
clienti)
Tabella
2
Domini
(ID_DOMINIO,
ID_CLIENTE
,
nome_domino,
data_registrazione)
Tabella
3
rinnovi(ID_RINNOVO,
ID_DOMINIO,
anno,
situazione,
fattura,
numero_fattura)
Grazie
mille
Elliot
|