Newsgroup: it.comp.lang.delphi
Titolo: Select Sql

Uso questa semplice select sql per estrarre dei dati da un file locale e 
funziona, cioč estrae i dati giusti, tra cui una riga con conto='CBF'. La 
select č la seguente:
 
1)  SELECT AA, CONTO, sum(IMPORTO) from MOV  WHERE AA IN ('2020')  and 
T_MOV = "U" and TCO="I" and TCOCTRP <> "I"  group by AA ,CONTO
     risultato:
    2020 CBF 10000
    2020 NFI  15000
    2020 INF  25000
 
Quando voglio estrarre il dato solo per lo specifico conto (esempio 'CBF'), 
eseguo la prossima select, ma non viene estratto niente:
 
2)  SELECT AA, sum(IMPORTO) from MOV  WHERE  AA IN ('2020') and  CONTO="CBF" 
and  T_MOV = "U" and TCO="I" and TCOCTRP <> "I"  group by AA
 
Vedete qualche problema che io non vedo ?
 
 

 Vedete qualche problema che io non vedo ?
Hem ..... e CONTO non lo dichiari ??
Prova con:
 
SELECT AA, CONTO, sum(IMPORTO) from MOV  WHERE  AA IN ('2020') and 
CONTO="CBF" and  T_MOV = "U" and TCO="I" and TCOCTRP <> "I"  group by AA
 
Non preoccuparti .... non hai idea di quanto tempo ho dedicato a sviste 
di questo genere .....
 
Alla prossima....
 
Ciao
 
Daniele
 
 

Grazie Daniele,ho subito provato, ma non funziona lo stesso. Tra l'altro, se 
aggiungo CONTO nella lista dei dati, localSql mi chiede di metterlo anche 
nel group by, cosa che ho fatto, ma continua a non estrarmi niente. Tolgo 
"and CONTO='CBF' e magicamente funziona, nel senso che estrae diversi valori 
di un certo numero di conti, incluso CBF.
Non è che può trattarsi di un baco ? O lo penso solo perchè non ne vengo 
fuori ? Boh !
 
"Daniele"  ha scritto nel messaggio news:r7ougj$78f$1...@gioia.aioe.org...


 fuori ? Boh !
 
Ma con un altro parametro diverso da CBF fa lo stesso?

Sono demoralizzato. Ho continuato a provare di tutto. Posso riassumere tutti 
i miei tentativi come segue:
1)  SELECT aa,conto, sum(importo) from MOV  where conto ='NFI' group by aa, 
conto
estrae:        NFI    250,00
quindi il criterio contro='NFI' funziona.
 
Nella select 2) seguente, ho aggiunto il criterio per anno='2020'.  NON 
ESTRAE NULLA come se non ci fossero valori di 'NFI' per l'anno 2020
 
2) SELECT aa,conto, sum(IMPORTO) from MOV  where  aa='2020' and conto ='NFI' 
group by aa, conto
 
Ma eseguendo questa stessa select (vedi 3) dove però non si sceglie lo 
specifico conto NFI, ma SI ESCLUDE UN CONTO qualsiasi,
vengono estratti tutti o record giusti per l'anno 2020 tra cui anche NFI, 
che quindi esiste
 
3)  SELECT aa,conto, sum(IMPORTO) from MOV  where  aa='2020' and 
conto<>'CON' group by aa, conto
estrae:   2020 CBF 130808,07
               2020 NFI   5031,23
               ............................
 
La select la eseguo da un programma fatto da me che uso da anni per testare 
la sintassi delle select prima di incorporarle in qualche programma ed è 
sempre andato bene. Ma potrei cercare qualcosa in internet per eseguire le 
query ed escludere anche questo possibile dubbio. Ho anche pensato che 
avesse a che fare con le dimensioni del mio file locale (circa 30000 
records) e l'ho diviso in due per provare, ma niente.
E ora, più prove faccio e meno ci capisco...
 
"PT"  ha scritto nel messaggio 
news:b94de3fb-e9e8-40a5...@googlegroups.com...


Non dici quale è il db.
 
A.

 La select la eseguo da un programma fatto da me
 
Vai in debug sul programma e vedi cosa fa e cosa succede.
 
A.

Mi sembrava di averlo detto, magari sottovoce. Lavoro con il BDE e files 
dBase, quindi uso local Sql. Aggiungo alle info che ho sospettato anche una 
qualche corruzione del file interrogato e ne ho ricreato una versione con un 
terzo dei records perdendo i dati di anni più vecchi che tanto non 
interessavano i conti di cui estraevo i dati.
 
"Alberto Salvati"  ha scritto nel messaggio 
news:c87ee5a6-4500-464c...@googlegroups.com...


 Uso questa semplice select sql per estrarre dei dati da un file locale
 
Prova a farla così e vedi cosa ti ritorna:
 
SELECT AA, sum(IMPORTO)
from MOV
WHERE AA IN ('2020') and
CONTO<>"CBF" and
T_MOV = "U" and
TCO="I" and
TCOCTRP <> "I"
group by AA
 
Quindi con CONTO diverso da CBF e non uguale.
 
David
 
 

 fuori ? Boh !
 
Qualcuno puo' rabbrividire .... ma ..
Io prima di inserire una richiesta sql statica (ovvero permanente nel 
programma, e' quella e sara' sempre quella) io la provo con un programma 
esterno (nel mio caso Dbeaver) e costruisco la query che poi portero' 
nel programma. In questo modo ho sotto controllo cio' che capita nel db 
(in questo caso firebird) e, in caso di incongruenze, come procedere 
alla sistemazione della query (considerato che non sono un esperto di sql.
 
Un saluto a tutti
 
Daniele
 

 Uso questa semplice select sql per estrarre dei dati da un file locale
 
Prova a farla cosě e vedi cosa ti ritorna:


 viene estratto con il criterio CONTO='CBF'
hai provato con un CONTO LIKE '%CBF%' forse ci sono dei caratteri non visualizzati che mandano fuoristrada, ciao

Daniele, anch'io faccio così. Solo che non ho un tool come quello che tu 
indichi, perchè non ne conosco per il BDE e quindi me lo sono fatto io. Più 
o meno un'edit box per sottoporre la stringa sql e un bottone per eseguirla, 
con qualche opzione per memorizzare le select che mi interessa conservare.
 
"Daniele"  ha scritto nel messaggio news:r7u5rs$lc8$1...@gioia.aioe.org...


BINGO !!!  E' così ! Ha estratto i nove records esistenti per l'anno 2020. 
Non ci posso credere, sono tre giorni e più che ci combatto. In effetti il 
codice può anche essere di 4 posizioni e avevo provato ad usare come 
criterio 'CBF ', ma senza risultato. Avevo esaminato i singoli record della 
tabella e nel campo appariva per tutti il valore 'CBF'.
Adesso m i viene la curiosità di sapere cosa può esserci di strano. C'è un 
modo per indagare ?
PS: Nell'entusiasmo stavo dimenticando di ringraziarti, davvero! Ottima 
intuizione.
 
"brunello"  ha scritto nel messaggio 
news:9fb15c66-ed4a-4251...@googlegroups.com...


Scusa, ma mi puoi essere ancora utile. Ho provato le seguenti select dopo 
quella da te suggerita:
 
select  aa,contro,numrm from movim where CONTRO like 'CBF%'
select  aa,contro,numrm from movim where CONTRO like '%CBF'
 
Poichè il campo è più ampio del valore 'CBF', avevo assunto che ci fosse del 
garbage a destra del valore (tipo 'CBF@'
Ma la prima select con  'CBF%' non trova nulla, mentre trova correttamente 
'%CBF'.
 
Hai idea di come interpretare questo fatto ?
 
"Stark"  ha scritto nel messaggio news:r7unuj$6ss$1...@gioia.aioe.org...


 Hai idea di come interpretare questo fatto ?
 
prova a vedere con una lenght del campo se il tuo sql lo supporta, a sensazione credo che il valore che tu abbia sia " CBF", cioè con un blank all'inizio.
 
Ciao da Enrico Giudici c/o Anthelios.

> prova a vedere con una lenght del campo se il tuo sql lo supporta, a sensazione credo che il valore che tu abbia sia " CBF", cioè con un blank all'inizio.
 
comunque io ti consiglio di fare un 
update movim set CONTRO='CBF' where like '%CBF' 
così dormi tranquillo, ciao

Ho fatto così:
update movim set CONTRO='CBF ' where like '%CBF%'
 
cioè ho riscritto il codice co un blank in fondo, sostituendolo al codice 
preesistente che avesse un blank o un qualsiasi altro carattere non visibile 
a destra o a sinistra.
Devo verificare più a fondo, ma sicuro relativamente al 2020 dove avevo i 
dettagli dei dati ora la select sql estrae correttamente.
Ancora grazie
 
"brunello"  ha scritto nel messaggio 
news:522c6ef4-776a-47e6...@googlegroups.com...
