Query su Cognome particolare

di Anonimizzato20368 il
11 risposte
Buongiorno,
mi capita che quando faccio una query con un campo cognome normale, mi restituisce il valore esatto.
Se per esempio utilizzo un cognome tipo : DE SANTIS
non trova niente (praticamente quando faccio query con cognome composto da 2 valori).

Passo il dato attraverso una maschera "Cerca per cognome"

la query:
[Maschere]![QUERYNOMEDATA]![COGNOME]

Cosa sbaglio ??
Grazie a tutti
Alessandro

11 Risposte

  • Da come la racconti e l'ho capita io, non mi sembra esserci errori.
    1. Sei sicuro che proprio DE SANTIS ci sia nella lista dei tuoi Cognomi?
    2. Puoi postare l'intero SQL della query?
  • Ciao
    scusa se rispondo in ritardo, la query è la seguente:
    SELECT DISTINCTROW [02CASSA].DATA, [01CLIENTE].NOME, [01CLIENTE].COGNOME, [03SERVIZIOPRODOTTO].NOMESERVIZIO, [03SERVIZIOPRODOTTO].COSTOSERVIZIO, [03SERVIZIOPRODOTTO].NOMEPRODOTTO, [03SERVIZIOPRODOTTO].COSTOPRODOTTO
    FROM (01CLIENTE INNER JOIN 02CASSA ON [01CLIENTE].[IDCLIENTE] = [02CASSA].[IDCLIENTE]) INNER JOIN 03SERVIZIOPRODOTTO ON [02CASSA].[IDCASSA] = [03SERVIZIOPRODOTTO].[IDCASSA]
    GROUP BY [02CASSA].DATA, [01CLIENTE].NOME, [01CLIENTE].COGNOME, [03SERVIZIOPRODOTTO].NOMESERVIZIO, [03SERVIZIOPRODOTTO].COSTOSERVIZIO, [03SERVIZIOPRODOTTO].NOMEPRODOTTO, [03SERVIZIOPRODOTTO].COSTOPRODOTTO
    HAVING ((([02CASSA].DATA)>=[Maschere]![QUERYNOMEDATA]![DataInizio] And ([02CASSA].DATA)<=[Maschere]![QUERYNOMEDATA]![DataFine]) AND (([01CLIENTE].NOME)=[Maschere]![QUERYNOMEDATA]![NOME]) AND (([01CLIENTE].COGNOME)=[Maschere]![QUERYNOMEDATA]![COGNOME]));
  • 
    SELECT 	DISTINCTROW 
    	[02CASSA].DATA, 
    	[01CLIENTE].NOME, 
    	[01CLIENTE].COGNOME, 
    	[03SERVIZIOPRODOTTO].NOMESERVIZIO, 
    	[03SERVIZIOPRODOTTO].COSTOSERVIZIO, 
    	[03SERVIZIOPRODOTTO].NOMEPRODOTTO, 
    	[03SERVIZIOPRODOTTO].COSTOPRODOTTO
    FROM (01CLIENTE  
    	INNER JOIN            02CASSA ON [01CLIENTE].[IDCLIENTE] = [02CASSA].[IDCLIENTE]) 
    	INNER JOIN 03SERVIZIOPRODOTTO ON [02CASSA].[IDCASSA]     = [03SERVIZIOPRODOTTO].[IDCASSA]
    GROUP BY 
    	[02CASSA].DATA, 
    	[01CLIENTE].NOME, 
    	[01CLIENTE].COGNOME, 
    	[03SERVIZIOPRODOTTO].NOMESERVIZIO, 
    	[03SERVIZIOPRODOTTO].COSTOSERVIZIO, 
    	[03SERVIZIOPRODOTTO].NOMEPRODOTTO, 
    	[03SERVIZIOPRODOTTO].COSTOPRODOTTO
    HAVING 
    ((
    	([02CASSA].DATA)  >=[Maschere]![QUERYNOMEDATA]![DataInizio] AND 
    	([02CASSA].DATA)  <=[Maschere]![QUERYNOMEDATA]![DataFine])  AND 
         (([01CLIENTE].NOME)   =[Maschere]![QUERYNOMEDATA]![NOME])      AND 
         (([01CLIENTE].COGNOME)=[Maschere]![QUERYNOMEDATA]![COGNOME]
    ));
    
    Questa NON E' esattamente una query su "COGNOME"

    Per capire dove sta' il problema, DEVI iniziare con una SEMPLICE "SELECT"
    
    SELECT 
        [01CLIENTE].NOME, [01CLIENTE].COGNOME 
    FROM 01CLIENTE 
    WHERE 
        [01CLIENTE].COGNOME="...cognome..."
    
    e poi aggiungere, un po' alla volta, le rimanenti parti, fino a capire QUANDO e DOVE compare il problema.
  • Hai ragione ,
    ma in base a quello che già uso, perchè se utilizzo il campo NOME e ci metto dentro "ANNA MARIA" funziona e mi restituisce i dati, e se invece inserisco nel campo COGNOME "DE SANTIS" non restituisce niente. Parlo di ANNA MARIA DE SANTIS.

    Mi fa impazzire sta cosa.

    Ale
  • Hai provato anche con altri cognomi non mono-nome?
    Sei sicuro che nel campo ci sia scritto DE SANTIS separato da un solo spazio? E se fosse DE SANCTIS?
  • Osvaldo intanto grazie per le dritte,
    ho inserito nell'ultima parte "LIKE" e pare funzioni:
    HAVING
    ((([02CASSA].DATA)>=[Maschere]![QUERYNOMEDATA]![DataInizio]
    And ([02CASSA].DATA)<=[Maschere]![QUERYNOMEDATA]![DataFine]) AND (([01CLIENTE].NOME)
    =[Maschere]![QUERYNOMEDATA]![NOME]) AND (([01CLIENTE].COGNOME) Like [Maschere]![QUERYNOMEDATA]![COGNOME]));


    Grazie
    Alessandro
  • @alexstar: il "PARE FUNZIONI" e' l'equivaente del "FUNZIONA PER SBAGLIO".

    Se PARE funzionare, vuol dire CHE NON FUNZIONA, nel senso che funziona in quel PARTICOLARISSIMO caso, MA NON IN GENERALE.

    DEVI capire PERCHE' con il LIKE funziona e prima NON FUNZIONAVA!

    Problema di spazi in testa o in coda alla stringa?
    Ci sono maiuscole/minuscole?
    Ci sono accentate?
    Ci sono DUE SPAZI?

    DEVI anche capire QUALI SONO GLI EFFETTI COLLATERLI del LIKE!
    MAGARI ora INVECE di ritornare UN UNICO record, in certi casi ne ritorna DUE o piu'!
    QUNDI hai risolto UN problema, ma ne hai inseriti altri CENTO!

    SPERARE che, SICCOME ora funziona, ALLORA FUNZIONA, E' l'errore che fanno il 99.99999% dei programmatori inesperti.
    Stai semplicemente nascondendo sotto il tappettino una ROGNA ROGNOSA.

    Certo che se l'idea e' di demandare la rogna a qualcun altro, allora va bene
  • migliorabile ha scritto:


    ...
    SPERARE che, SICCOME ora funziona, ALLORA FUNZIONA, E' l'errore che fanno il 99.99999% dei programmatori inesperti.
    Stai semplicemente nascondendo sotto il tappettino una ROGNA ROGNOSA.

    Certo che se l'idea e' di demandare la rogna a qualcun altro, allora va bene
    PERFETTAMENTE D'ACCORDO
  • Mi dispiace la frase "demandare la rogna a qualcun altro" , se faccio una richiesta è perchè mi aspetto che il forum oltre a trovare la soluzione sia anche
    "elastico" nel capire con chi ha a che fare.
    Io purtroppo sono nuovo sia nel forum, che nell'imparare a programmare in access. capisco che voi siete "GURU" nel programmare in ACCESS,
    un programma a prescindere dalla sintassi "deve funzionare" , ovviamente all'inizio di errori se ne fanno e probabilmente continuerò a farli.
    Se il vostro scopo è quello di non aiutarmi fate pure, io ho solo chiesto se era possibile risolvere un problema.
    Grazie
    Ale
  • alexstar ha scritto:


    ... se faccio una richiesta è perchè mi aspetto che il forum oltre a trovare la soluzione ....
    Io mi aspetto che un fornitore, con il quale concordo un prezzo, effettui la prestazione offerta (possibilmente bene e nei tempi previsti).

    Tu fai una richiesta in un forum E TI ASPETTI CHE TI DIANO LA SOLUZIONE (gratuitamente e magari in tempo zero) ......
    Spiega(ci) cosa/chi a fatto nascere in te questa aspettativa !
  • Nessuna aspettativa, e nessun tempo zero.
    Ho chiesto solo un aiuto.
    Se arriva ben venga, ovviamente non posso pretendere niente.
    Non ho trattato male nessuno, e se ho dato questa impressione mi scuso.
    Saluti
    Ale
Devi accedere o registrarti per scrivere nel forum
11 risposte