Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: dex - 20 Aprile 2010, 23:28:24

Titolo: [risolto] query per campi vuoti
Inserito da: dex - 20 Aprile 2010, 23:28:24
ciao raga
devo trovare dei record che sono diversi da SI oppure vuoti, ho provato con questa query ma non funziona, dove sbaglio?
Codice: [Seleziona]
sqls = "select * from contratti WHERE trasferito <> '" & "SI" & "'" & " AND trasferito = '" & NULL & "'"
Titolo: Re: query per campi vuoti
Inserito da: milio - 20 Aprile 2010, 23:34:53
prova cosi':
Codice: [Seleziona]
SELECT * FROM contratti WHERE trasferito IN ('SI','');
Titolo: Re: query per campi vuoti
Inserito da: fsurfing - 20 Aprile 2010, 23:35:27
prova in questo modo

Codice: [Seleziona]
sqls = "SELECT * FROM contratti WHERE trasferito <> 'SI' OR trasferito = NULL;"

per non funziona cosa intendi?

ti da errore o ti ritorna dati non corretti?

Titolo: Re: query per campi vuoti
Inserito da: milio - 20 Aprile 2010, 23:37:36
ops... avevo visto male :)

giusto come a detto fsurfing
Titolo: Re: query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 20:32:12
prova in questo modo

Codice: [Seleziona]
sqls = "SELECT * FROM contratti WHERE trasferito <> 'SI' OR trasferito = NULL;"

per non funziona cosa intendi?

ti da errore o ti ritorna dati non corretti?


ciao
ora provo il codice.
per errore intendo che non trova nessun record.
Titolo: Re: query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 20:43:06
nulla da fare. record trovati 0

vi spiego meglio la mia situazione (questo accade quando pretendono modifiche su modifiche)

avevo creato questa tabella per registrare i contratti, installata su più pc e avevano cominciato ad inserire dati, un bel giorno mi chiamano e pretendono una modifica.
devo aggiungere un campo testo dove inserire da codice SI / NO se quel contratto è stato trasferito alla sede centrale.

aggiungo il campo e il codice all'interno del programma, il programma sui nuovi contratti inseriti in quel campo inserisce NO, e mi trovo in questa situazione:
tutti i vecchi record hanno il campo vuoto
tutti i nuovi record hanno il campo con NO
tutti i nuovi record che sono stati trasferiti hanno il campo con SI

ora il problema è quando faccio le query di ricerca, se imposto una query per sapere quanti contratti sono stati trasferiti trova tutti i record SI, se invece voglio sapere quelli che non sono stati trasferiti mi trova solo i record con NO, invece in quelli che non sono stati trasferiti dovrebbe trovare sia i NO che i precedenti vuoti.

 
Titolo: Re: query per campi vuoti
Inserito da: fsurfing - 21 Aprile 2010, 20:52:18
immagino tu abbia provato con
Codice: [Seleziona]
sqls = "SELECT * FROM contratti WHERE trasferito <> 'SI'
Titolo: Re: query per campi vuoti
Inserito da: fsurfing - 21 Aprile 2010, 20:54:28
ormai e tardi ma io solitamente quando devo aggiungere un campo a una tabella la imposto con valore di default diverso da NULL così semplifichi le ricerche visto che query con NULL come ricerca di solito mi danno problemi
Titolo: Re: query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 21:06:21
immagino tu abbia provato con
Codice: [Seleziona]
sqls = "SELECT * FROM contratti WHERE trasferito <> 'SI'

si ho gia provato, l'unico è inserire NO in tutti i campi vuoti, il problema è che se volessi farlo da codice come costruisco la query che analizza i campi uno ad uno e mi inserisce No in quelli vuoti?
Titolo: Re: query per campi vuoti
Inserito da: milio - 21 Aprile 2010, 21:22:39
hai provato anche:

Codice: [Seleziona]
SELECT * FROM contratti WHERE trasferito IN ('NO','');

?
Titolo: Re: query per campi vuoti
Inserito da: fsurfing - 21 Aprile 2010, 21:36:34
Citazione
si ho gia provato, l'unico è inserire NO in tutti i campi vuoti, il problema è che se volessi farlo da codice come costruisco la query che analizza i campi uno ad uno e mi inserisce No in quelli vuoti?
secondo me ti conviene farlo fare a gambas

fai una query che trova tutti i record

poi li analizzi uno ad uno e quelli da modificare li modifichi

Titolo: Re: query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 21:56:09
hai provato anche:

Codice: [Seleziona]
SELECT * FROM contratti WHERE trasferito IN ('NO','');

?
niente non li trova
Titolo: Re: query per campi vuoti
Inserito da: milio - 21 Aprile 2010, 21:58:26
avresti mica la possibilità di passarmi il db? e' un sqlite giusto?
Titolo: Re: query per campi vuoti
Inserito da: milio - 21 Aprile 2010, 23:27:17
forse ho trovato:

SELECT * FROM contratti WHERE trasferito = 'NO' or trasferito IS NULL
Titolo: Re: query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 23:35:34
milio sei un genio

grazie
Titolo: Re: [risolto] query per campi vuoti
Inserito da: milio - 21 Aprile 2010, 23:47:41
 ;D

posso cancellare la tabella o ti serve qualcos'altro?
Titolo: Re: [risolto] query per campi vuoti
Inserito da: dex - 21 Aprile 2010, 23:56:45
per ora ho risolto puoi cancellare tutto

by alla prossima
Titolo: Re: [risolto] query per campi vuoti
Inserito da: milio - 22 Aprile 2010, 00:08:00
ok cancellato.

by :)