Newsgroup: it.comp.www.php
Titolo: filtrare dati

buongiorno ho un problema, che forse qualcuno di voi ha già affrontato, 
quindi chiedo consiglio, ho una tabella di db contente data,numero di 
prenotazione numero di persone,notti,e lo stato (in casa, partiti,no 
show, arrivati) il problema è che la fonte dati per popolare la tabella 
viene generata in un file excel, e nelle ultime release hanno tolto lo 
storico degli arrivi, quindi i clienti risultano tutti in casa... ora per 
ragioni ovvie (dichiarazioni istat) dovrei trovare un modo rapido per 
elencare i numeri di prenotazione non presenti nei giorni precedenti e su 
quelli aggiungere l'identificativo di arrivati... è fattibile?
sono abbastanza confuso, ho provato generando dei file di testo e 
paragonandoli poi con diff ma i risultati sono pessimi e il tempo per 
l'elaborazioen è eterno... qualcuno può urgentemente darmi un'indicazione 
di come ottenere l'elenco dei numeri di prenotazione non presenti nei 
giorni precedenti?
Grazie

storico degli arrivi, quindi i clienti risultano tutti in casa...
Tenendo conto che 'unciocapitounamazza, potresti farmi un esempio con sei
righe di numero, tre per il file excel di ieri e tre per il file excel di
oggi, con il risultato che vorresti?
Per esempio:
Id	Data	Prenotazione	Persone	Notti	Stato
1	10/12	12345		2	4	In casa
...
Leonardo
-- 
And where the black and corkscrew towers climb,
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides

 Leonardo
| id | data     |res. | customers    |notti|pax|nazione     |stato|
|2951|2008-10-09|15663|NICOLE GERBER |  1  | 2 |Australia   | IN  | 
|2952|2008-10-09|15665|susanna gardek|  1  | 1 |South Africa| IN  | 
|2953|2008-10-09|15665|carl lindin   |  1  | 1 |South Africa| IN  |  
|3273|2008-10-10|15662|Daniel Goldy  |  1  | 1 |Greece      | IN  | 
|3274|2008-10-10|15663|NICOLE GERBER |  1  | 2 |Australia   | OUT | 
|3275|2008-10-10|15665|susanna gardek|  1  | 1 |South Africa| OUT |     
Lascia perdere i file excel, è tutto in un database,  il punto ora è come 
posso filtrare i dati.
partiamo dal presupposto che scorro la tabella, ed estraggo il campo res, 
ora dovrei trovare il modo di confrontare questo campo res con i giorni 
precedenti per stabilire qual'è il primo giorno in cui esso compare 
esempio 
res 15662 ->data 2008-10-10 è metto il tutto in un file di testo, alla 
fine della scansione prendo il file di testo e lo riprocesso con una 
query di update del database modificando lo stato da generico IN ad AR
spero di esser stato più chiaro..
 

query di update del database modificando lo stato da generico IN ad AR
Non ti serve, questo che hai detto si fa diritto in MySQL:
	SELECT INTO TEMPORARY TABLE cippalippa
		res, MIN(data) AS arrivo FROM prenotazioni
		WHERE data >= $ultima_data_verificata
		GROUP BY res;
	UPDATE prenotazioni, cippalippa SET
		prenotazioni.stato = 'AR' WHERE
		prenotazioni.res = cippalippa.res
		AND
		prenotazioni.data = cippalippa.data;
...piu' o meno. Con alcuni RDBMS puoi fare tutto con una query
solamente.


 Leonardo
potresti spiegarmi meglio, a quest'ora son decisamente fuso...

potresti spiegarmi meglio, a quest'ora son decisamente fuso...
Hai una tabella con, minimo, data, prenotazione e stato.
Vuoi che per ciascun numero di prenotazione, lo stato corrispondente
alla data che arriva per prima sia cambiato in "AR".
Prima fase: estrai per ciascun numero di prenotazione la data minima
presente. Metti il risultato in una tabella temporanea.
Seconda fase: vai a ricercare quelle coppie (numero, dataminima) nel
database, e ogni volta che trovi una coppia, metti lo stato su "AR".
Per fare prima, ti salvi l'ultima data in cui hai fatto questo giro,
in modo da controllare solo i record dopo quella data; quelli prima,
evidentemente, sono gia' a posto.
Oppure puoi fare
 	SELECT INTO TEMPORARY TABLE cippalippa
 		res, MIN(data) AS arrivo FROM prenotazioni
		GROUP BY res HAVING arrivo = 'IN';
...questo esclude tutte le prenotazioni, il cui primo record risulti
gia' in "AR".
Controlla la sintassi di SELECT INTO TEMPORARY TABLE se usi MySQL.




mi da un'errore in generazione della tabella temporanea...

mi da un'errore in generazione della tabella temporanea...
Posta - come minimo - la query, altrimenti tutto quel che posso
risponderti, con la migliore buona volonta', e' "ci sara' stato
qualche errore"... che e' una cosa che gia' sai.
(Con "la query" intendo quello che hai spedito a MySQL, lettera
per lettera, carattere per carattere... e magari anche l'errore
esatto copiaincollato dalla schermata di MySQL).


 
mi da un errore creando la tabella tempranea...
Undeclared variable: TEMP.

 Leonardo
risolto, oggi ero mano fuso di ieri sera...:-)) grazie per la 
disponibilità..invece di una temporary table ho usato una tabella 
fisica..mi ritorna utile in ottica di rilascio dell'applicazione(utonti 
finali docet)...


<OT>
Benchè io abbia sempre avuto non più di 2 in latino, credo sia
"docent" - terza plurale ;)
(Oppure è impersonale con "utonti finali" al dativo? Mah)
</OT>

Undeclared variable: TEMP.
In quel codice, la variabile TEMP non c'e' proprio, quindi e' qualcosa che
hai aggiunto tu. Ricontrolla.
