Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-02-2007, 11:38   #1
Alan J
Member
 
L'Avatar di Alan J
 
Iscritto dal: Jul 2004
Città: Prov. Savona
Messaggi: 166
[PostgreSQL] aiuto per query

ciao a tutti, ho una tabella tab di righe fatte così:

ord(int) | item(string) | data(date)

dove ord è Primary Key ed è progressivo per riga; i campi (a parte ovviente ord) possono essere vuoti.
A me seve una query che mi dia le riga tra 2 date, e ho fatto:

SELECT * FROM tab WHERE data BETWEEN 'data1' AND 'data2'

che però nn mi restituisce le righe dove il campo data è vuoto!

Si può ovviare?

grazie!!
__________________
Abit NF-M2 nView - AMD Athlon 64 X2 4200+ EE - Corsair TWIN2X 1024-6400C4 EPP
Alan J è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 12:18   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Alan J Guarda i messaggi
che però nn mi restituisce le righe dove il campo data è vuoto!

Si può ovviare?
Basta che la condizione che hai già messo sia in OR con un'altra condizione che dica "prendi quelli senza data".
Se non c'è una data, suppongo che sia NULL, quindi credo che si possa aggiungere: OR data IS NULL
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 12:43   #3
Alan J
Member
 
L'Avatar di Alan J
 
Iscritto dal: Jul 2004
Città: Prov. Savona
Messaggi: 166
Quote:
Se non c'è una data, suppongo che sia NULL, quindi credo che si possa aggiungere: OR data IS NULL
si, è NULL, ma è un po' più complesso... mi spiego: mettiamo che sia
data1 < data2
a data1 corrisponde ord1, a data2, ord2 (quindi ord1 < ord2) la query dovrebbe restituire le righe tra ord1 e ord2, comprese quelle dove data = NULL.

scusa se ho spiegato male.
__________________
Abit NF-M2 nView - AMD Athlon 64 X2 4200+ EE - Corsair TWIN2X 1024-6400C4 EPP
Alan J è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 13:03   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Alan J Guarda i messaggi
si, è NULL, ma è un po' più complesso... mi spiego: mettiamo che sia
data1 < data2
Innanzitutto suppongo che questi data1 e data2 siano dei valori "costanti" che metti nella query, giusto?

Quote:
Originariamente inviato da Alan J Guarda i messaggi
si, è NULL, ma è un po' più complesso... mi spiego: a data1 corrisponde ord1, a data2, ord2 (quindi ord1 < ord2) la query dovrebbe restituire le righe tra ord1 e ord2, comprese quelle dove data = NULL.
Questo che stai dicendo è un caso particolare.
La query che hai fatto dice solo di prendere tutte le righe in cui il campo data è compreso tra due valori.
Che poi tutte le righe che hanno data1 <= data <= data2 siano anche, guarda caso, tra un certo ord1 e ord2 .... è un caso particolare.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 13:44   #5
Alan J
Member
 
L'Avatar di Alan J
 
Iscritto dal: Jul 2004
Città: Prov. Savona
Messaggi: 166
Quote:
Innanzitutto suppongo che questi data1 e data2 siano dei valori "costanti" che metti nella query, giusto?
cosa intendi con 'valori costanti'? nel caso della mia applicazione le date vengono date in input...

quello che mi serve è una cosa che prende le 2 date, data1 e data2, faccia la query:
SELECT * FROM tab WHERE data BETWEEN 'data1' AND 'data2'
dopodichè prenda il più piccolo ed il più grande dei valori ord restituiti e faccia una seconda query:
SELECT * FROM tab WHERE ord BETWEEN 'ord1' AND 'ord2'

Ma una cosa così si riesce a fare solo con SQL?
__________________
Abit NF-M2 nView - AMD Athlon 64 X2 4200+ EE - Corsair TWIN2X 1024-6400C4 EPP
Alan J è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 14:04   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Alan J Guarda i messaggi
cosa intendi con 'valori costanti'? nel caso della mia applicazione le date vengono date in input...
Sì ma suppongo che nella query saranno dei valori del tipo '20070227'. Che poi questi valori siano presi in input, cambia poco.

Quote:
Originariamente inviato da Alan J Guarda i messaggi
quello che mi serve è una cosa che prende le 2 date, data1 e data2, faccia la query:
SELECT * FROM tab WHERE data BETWEEN 'data1' AND 'data2'
dopodichè prenda il più piccolo ed il più grande dei valori ord restituiti e faccia una seconda query:
SELECT * FROM tab WHERE ord BETWEEN 'ord1' AND 'ord2'

Ma una cosa così si riesce a fare solo con SQL?
Sui database sono una schiappa, percui la butto lì:
Codice:
SELECT * FROM tab WHERE ord BETWEEN
  (SELECT MIN(ord) FROM tab WHERE data BETWEEN 'data1' AND 'data2')
AND
  (SELECT MAX(ord) FROM tab WHERE data BETWEEN 'data1' AND 'data2')
Non mi assumo responsabilità.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-02-2007, 14:53   #7
Alan J
Member
 
L'Avatar di Alan J
 
Iscritto dal: Jul 2004
Città: Prov. Savona
Messaggi: 166
Quote:
Non mi assumo responsabilità.
beh, è una app. didattica (per me), quindi non ti preoccupare...
provo e vedo.

per ora ti ringrazio.
__________________
Abit NF-M2 nView - AMD Athlon 64 X2 4200+ EE - Corsair TWIN2X 1024-6400C4 EPP
Alan J è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Il nuovo M5 fa la differenza anche nel g...
Le AirPods ora sono in grado di rilevare...
Oggi su Amazon succede di tutto: sconti ...
'Copilot Gaming mi spiava!': le accuse d...
Mova P50 Pro Ultra, robot aspirapolvere ...
Speciale action cam: doppio sconto solo ...
Eureka J15 Ultra conquista Amazon: aspir...
Game Pass è sempre più ric...
20 milioni di utenti contro Apple: grand...
La sonda spaziale europea ESA JUICE &egr...
La capsula Orion Integrity è stat...
Intel Nova Lake: i driver Linux svelano ...
Nothing punta sulla fascia bassa: ecco c...
Redmi Watch 6 è ufficiale: si pre...
Arriva Snapdragon 6s Gen 4: l'obiettivo ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v