Pagina 1 di 1

[Risolto] query con un campo di testo

Inviato: martedì 13 settembre 2016, 12:57
da moore69
ciao a tutti!!
Credo di aver fatto un danno... avevo già scritto questo post, ma non lo trovo più nella lista :roll: Provo a rifarlo, nel caso scusatemi tantissimo se fosse una ripetizione......

Ho creato un database di pazienti che, tra le altre informazioni che contiene, mi indica la path assoluta per recupeare la cartella relativa dal mio HD (es. \\nomeserver\archivio\a\01\nome-paziente)

Ho bisogno di creare una query che mi cerchi tutti i pazienti contenuti nella sottocartella \a e me li conti.
Ho scritto la query riportata nell'immagine allegata
query.jpg
ma il risultato è che viene conteggiato il numero dei pazienti contenuti nelle cartelle \01, \02,\03 ecc......
Quello che speravo era invece che venissero conteggiati i pazienti in \a indipendentemente da quale sottocartella li contiene......

In linea teorica dovrei sostituire al secondo * del LIKE un qualche altro carattere che gli faccia ignorare il resto del testo..... é possibile?????
spero di essermi spiegato: solo questo serebbe già un successo :? !!!

Ciao e grazie
moore

Re: query con un campo di testo

Inviato: martedì 13 settembre 2016, 13:47
da charlie
Ciao, bisogna fare delle prove, puoi condividere con noi un file con dati fittizi?

Re: query con un campo di testo

Inviato: martedì 13 settembre 2016, 15:24
da moore69
eccolo scusa......

https://www.dropbox.com/s/o4u4eke7hqle4 ... a.odb?dl=0

grazie ancora
moore

Re: query con un campo di testo

Inviato: martedì 13 settembre 2016, 20:54
da charlie
Per permettere la futura continuità, allego qui il file di @moore69.

Re: query con un campo di testo

Inviato: mercoledì 14 settembre 2016, 7:22
da charlie
Se ho ben compreso, il risultato da te atteso era 3, nell'esempio allegato.
Con l'uso di LIKE la query individua tutti i record che corrispondono alla ricerca e la funzione COUNT ti restituisce correttamente 1 per ogni record.
Credo che quello che vuoi fare non sia possibile.

Re: query con un campo di testo

Inviato: mercoledì 14 settembre 2016, 10:27
da moore69
charlie ha scritto:Se ho ben compreso, il risultato da te atteso era 3, nell'esempio allegato.
esattamente.....
charlie ha scritto:Credo che quello che vuoi fare non sia possibile.
...ma perchè io voglio sempre fare cose impossibili?????????? :crazy: :crazy: :crazy:
Però stavo pensando a qualcosa tipo un'altra query (comando sql?) che mi estrae dal campo path il carattere della cartella principale (nell'esempio "\a\"....)
poi con un'altra query faccio il conteggio.... Possibile?? Bho adesso faccio un po' di prove.....

grazie lo stesso!
moore

Re: query con un campo di testo

Inviato: mercoledì 14 settembre 2016, 13:27
da Gaetanopr
moore69 ha scritto: ...ma perchè io voglio sempre fare cose impossibili?????????? :crazy: :crazy: :crazy:
Non è impossibile, una soluzione potrebbe essere quella di aggiungere un nuovo campo dove indichi la cartella per ogni indirizzo.
Lancia la query2 e indica la cartella da conteggiare

Re: query con un campo di testo

Inviato: giovedì 15 settembre 2016, 9:38
da moore69
Il tuo sistema mi piace maaaaaa......
la colonna che hai aggiunto nella tabella, l'hai compilata manualmente? non esiste un sistema più o meno automatico?
Il database su cui lavoro in realtà esiste da tempo, e ormai i record sono oltre 3000.... :roll: :roll:

Ieri intanto avevo trovato la funzione SQL substr, che a una prima occhiata dovrebba considerare solo una parte di un testo....
Adesso devo solo capire come si può utilizzare.... appena ho un po' di tempo (non a breve :( ) mi propongo di studiarci......

Grazie ancora
moore

P.S. mi sapete indicare un sito in cui vengono spiegate tutte le funzioni SQL? mi sa che in quel modo si possano fare mille cose.......

Re: query con un campo di testo

Inviato: giovedì 15 settembre 2016, 11:46
da Gaetanopr
Possiamo fare tutto in automatico, tramite un istruzione di update.

Re: query con un campo di testo

Inviato: giovedì 15 settembre 2016, 12:07
da charlie
Se le stringhe in Path hanno lunghezza fissa, potresti adoperate questa query senza aver bisogno di un campo in più nella tabella:

Codice: Seleziona tutto

SELECT COUNT( "Path" ), SUBSTR( "Path", 23, 1 ) "Cartella" FROM "TAC" WHERE SUBSTR( "Path", 23, 1 ) = ?
Per quanto riguarda SQL un aiuto lo puoi trovare qui:
http://www.1keydata.com/it/sql/

Re: query con un campo di testo

Inviato: giovedì 15 settembre 2016, 12:20
da Gaetanopr
Altrimenti usare l'operatore Like in questo modo

Codice: Seleziona tutto

SELECT COUNT( "Path" ) FROM "TAC" WHERE "Path" LIKE '%\a\%'
oppure in quest altro

Codice: Seleziona tutto

SELECT COUNT( "Path" ) FROM "TAC" WHERE "Path" LIKE ?
e indicare la lettera così

Codice: Seleziona tutto

 '%\b\%'

Re: [RISOLTO] query con un campo di testo

Inviato: lunedì 19 settembre 2016, 9:40
da moore69
Urka quante belle idee.....
Fantastico, provo subito la migliore per le mie robe.....
Grazie millissime!!!!!!!

moore