Query su Cognome particolare

di il
11 risposte

Query su Cognome particolare

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

  • Re: Query su Cognome particolare

    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?
  • Re: Query su Cognome particolare

    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]));
  • Re: Query su Cognome particolare

    
    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.
  • Re: Query su Cognome particolare

    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
  • Re: Query su Cognome particolare

    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?
  • Re: Query su Cognome particolare

    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
  • Re: Query su Cognome particolare

    @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
  • Re: Query su Cognome particolare

    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
  • Re: Query su Cognome particolare

    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
  • Re: Query su Cognome particolare

    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 !
  • Re: Query su Cognome particolare

    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