PDA

View Full Version : [SQL]Problemino con le date


Redvex
28-02-2011, 10:01
Ho un file odb di un'associazione di donatori di sangue (uso libreoffice 3.3).
Ci sono 2 tabelle:
Anagrafica: contiene i dati dei donatori
Donazioni: contiene le date di donazione (in formato date) ed è collegata tramite id
Sesso (non so perchè fare un'altra tabella) contiene il sesso.

Ora io dovrei fare una query che mi cacci fuori i donatori maschi che hanno superato i 90 giorni dall'ultima donazione e i donatori femmine che hanno superato i 180 giorni dall'ultima donazione.
Sarebbe gradito un aiutino.

SELECT "anagrafica"."ID","anagrafica"."Nome", "anagrafica"."Cognome"
FROM "anagrafica", "sesso","donazioni"
WHERE "anagrafica"."ID_Sesso" = "sesso"."id_sesso" AND "sesso"."nome_sesso" = 'Maschio' AND (
SELECT (DATEDIFF( 'dd', MAX( "donazioni"."Data_donaz" ), NOW( ) )FROM "donazioni", "anagrafica" WHERE "anagrafica"."ID" = "donazioni"."ID"))>= 90)


L'errore sembra stia nel >= 90 non saprei

Ps libreoffice crasha ogni 3x2...non è che esiste qualche front tipo mysql front per interrogare il db?

Redvex
01-03-2011, 11:11
Aggiungo che facendo

SELECT "ID", DATEDIFF( 'dd', MAX( "Data_donaz" ), NOW( ) ) as "Data"
FROM "donazioni"
WHERE "ID" > numeroX
GROUP BY "ID"

funziona benissimo ma se faccio

WHERE "Data" > numeroX

Mi ritorna "Valore null come boolean"
Ho provato a fare anceh Where Cast ("Data" as Int) però nulla :(

Gin&&Tonic
01-03-2011, 12:11
Ho un problemino anche io con l'sql... sicuramente molto più semplice del tuo. Credo che tu riusciresti a risolvere il mio problema , mi daresti una mano perfavore (è una cosa da niente) rispondendo qui:
http://www.hwupgrade.it/forum/showthread.php?t=2327327

Sempre se puoi... Grazie e scusa il disturbo