Newsgroup: it.comp.appl.access
Titolo: query di accodamento con 2 diversi controlli

DATABASE CLIENTI
CODICE CLIENTE  LISTINO
001            TIZIO          BASSO
002            CAIO           BASSO
003            SEMPRONIO  BASSO
dato che se viene cambiato un listino ad un cliente ... non ho la posibilità
di rintracciare quale era il listino precedente e l'eventuale sequenza ho
fatto cosi'
ho duplicato il database in COPIA_CLIENTI ed ho aggiunto il campo data
CODICE CLIENTE           LISTINO  DATA
001          TIZIO                BASSO  28/02/2003
002           CAIO               BASSO  28/02/2003
003            SEMPRONIO BASSO   28/02/2003
se oggi (05 MARZO 2003) nel mio database CLIENTI modifico un listino
esempio al cliente CAIO abbino il listino MEDIO
ed al cliente SEMPRONIO abbino il listino ALTO
avro'
CODICE CLIENTE  LISTINO
001             TIZIO  BASSO
002             CAIO   MEDIO
003              SEMPRONIO ALTO
vorrei fare un comando che mi permetta di aggiungere al mio DATABASE
COPIA_CLIENTI
solo le righe modificate
cio' dovrei confrontare l'archivio CLIENTI e COPIA_CLIENTI
ed aggiungere in quest'ultimo solo le righe modificate
praticamente
CODICE CLIENTE  LISTINO  DATA
001            TIZIO          BASSO  28/02/2003
002              CAIO         BASSO  28/02/2003
003            SEMPRONIO BASSO  28/02/2003
002             CAIO              MEDIO  05/03/2003
003             SEMPRONIO ALTO  05/03/2003
cosi' riesco ad avere lo storico del mio cliente e vedere nel tempo quali
listini gli sono stati abbinati.
pero' ... il problema maggiore e' il seguente:
se domani  06.03.2003 faccio un'altra modifica
sempre sul cliente CAIO dove gli abbino il listino ALTO
quando faccio il controllo
tra COPIA_CLIENTI e CLIENTI .... gli devo dire di fare questo controllo:
1) se il CLIENTE non e' presente in COPIA_CLIENTI devo aggiungere la riga
e come data mettero' quella odierna (06.03.2003)
VEDI ESEMPIO NUOVO CLI
2) se invece il CLIENTE e' gia' presente in COPIA_CLIENTI
VEDI ESEMPIO CAIO .... ALTO
devo fare il confronto con tutti i record che gli competono
prendendo per confronto solo quelloc on data maggiore
praticamente avro'
CODICE CLIENTE  LISTINO  DATA
001            TIZIO          BASSO  28/02/2003
002              CAIO         BASSO  28/02/2003
003            SEMPRONIO BASSO  28/02/2003
002             CAIO              MEDIO  05/03/2003
003             SEMPRONIO ALTO  05/03/2003
999            NUOVO CLI    MEDIO  06/03/2003
002             CAIO              ALTO    06/03/2003
come faccio ???
grazie
Paolo

 fatto cosi'
Allora: prima di tutto direi che forse sarebbe meglio che tu esponi il tuo
problema dal punto di vista di quello che vuoi ottenere dal tuo applicativo
alla fine e non come risolvere la TUA soluzione che ti sei dato al problema.
Poi, pur parlè, quando c'è un problema di modifica di listino, si risolve
inserendo anche il prezzo nella transazione di vendita, in modo che il
listino serva solo per dare il prezzo all'atto della vendita, ma per le
eventuali ricerche sul passato si usa il prezzo salvato al momento della
transazione.
Infine, la prima parte di quello che hai scritto tu (poi mi è girata la
testa) si risolve con una tabella in relazione uno->molti con quella clienti
Ad ogni aggiornamento di listino si aggiunge un record con l'ID del cliente,
la data e la tipologia del listino.
Con questa struttura puoi sapere sempre l'ultimo listino (dataMAX) e la
storia dei listini.
Antonio