Query di ricerca... problema risultato

di
Anonimizzato10097
il
11 risposte

Query di ricerca... problema risultato

Ciao ho una tabella dove inserisco tramite maschera alcuni importi (verbali, sinistri, addebiti vari) ho anche un campo data.... capita che nello stesso giorno debba inserire sia un verbale che un sinistro per lo stesso nominativo... ho fatto una query con una ricerca per nominativo e data... il risultato pero' viene duplicato.... es. ho inserito 45 euro di multa, 250 euro di sinistro il giorno 25/05/2012... il risultato che viene fuori e' 2 volte 45 euro , 2 volte 250 euro, non capisco perche'...
Sotto quello che esce dalla richiesta



Verbali Sinistri Addebiti Vari Data Tipologia Rimborso Importo
€ 50,00 € 45,00 € 21,00 14/06/2012 benzina € 50,00
€ 45,00 € 4,00 € 55,00 01/05/2012 benzina € 50,00 --- questo 50 euro non deve esserci perche' io l'ho inserito una volta sola

Provo amettere il codice sql che ho, se qualcuno mi da una mano perfavore....

SELECT Anagrafica.Nominativo, Filiali.Filiali, Tariffe.Tariffe, Addebiti.Verbali, Addebiti.Sinistri, Addebiti.[Addebiti Vari], Addebiti.Data, Rimborsi.[Tipologia Rimborso], Rimborsi.Importo, TNT.Ore, TNT.Presenze
FROM ((((Tariffe INNER JOIN (Filiali INNER JOIN Anagrafica ON Filiali.IDFILIALI = Anagrafica.[Id filiali]) ON Tariffe.IDTARIFFE = Anagrafica.[Id Tariffe]) LEFT JOIN Bartolini ON Anagrafica.IDANAGRAFICA = Bartolini.[Id Anagrafica]) LEFT JOIN Addebiti ON Anagrafica.IDANAGRAFICA = Addebiti.IdAnagrafica) LEFT JOIN Rimborsi ON Anagrafica.IDANAGRAFICA = Rimborsi.IdAnagrafica) LEFT JOIN TNT ON Anagrafica.IDANAGRAFICA = TNT.idAnagrafica
GROUP BY Anagrafica.Nominativo, Filiali.Filiali, Tariffe.Tariffe, Addebiti.Verbali, Addebiti.Sinistri, Addebiti.[Addebiti Vari], Addebiti.Data, Rimborsi.[Tipologia Rimborso], Rimborsi.Importo, TNT.Ore, TNT.Presenze
HAVING (((Anagrafica.Nominativo) Like "*" & [Inserisci Nome] & "*" Or (Anagrafica.Nominativo) Between [Inserisci data iniziale della ricerca] And [Inserisci data finale della ricerca]));

Grazie

11 Risposte

  • Re: Query di ricerca... problema risultato

    Solo per approfondire la mia conoscenza; non ho più avuto notizie relative a :
    "Scrivere numeri con lo 0 iniziale in una tbella numerica"

    Sicuramnete le indicazioni date sono risultate fuori contesto, ma almeno, saperlo, mi avrebbe spinto ad approfondire l'argomento.
  • Re: Query di ricerca... problema risultato

    Non ho controllato l'SQL della query, ma dall'esposizione del problema c'è qualcosa che non torna. Tu hai creato 3 colonne Verbali, Sinistri, Addebiti vari.....sono tutti valori che potresti indicare come Causale in una colonna sola. Cioè è più sensato che tu abbia le seguenti colonne:
    Data: tipo Data/ora
    Causale: testo
    Importo: Numerico o Valuta

    così, se nello stesso giorno hai un Verbale, un Sinistro, un Furto, un Pagamento bolletta, potrai includere tutti quelli che vuoi e poi sommarli Data per Data (o anche Periodo per Periodo da te scelto).
  • Re: Query di ricerca... problema risultato

    GiuseppeMN ha scritto:


    Solo per approfondire la mia conoscenza; non ho più avuto notizie relative a :
    "Scrivere numeri con lo 0 iniziale in una tbella numerica"

    Sicuramnete le indicazioni date sono risultate fuori contesto, ma almeno, saperlo, mi avrebbe spinto ad approfondire l'argomento.

    Ciao Giuseppe, hai ragione mi devi scusare... si ho poi risolto seguendo tutti i consigli quindi nulla e' fuori contesto ma li considero spunti per migliorare... ho fatto cosi':Precisione singola posizioni decimali 2 e sembra funzionare!!! grazie e scusa ancora
  • Re: Query di ricerca... problema risultato

    OsvaldoLaviosa ha scritto:


    Non ho controllato l'SQL della query, ma dall'esposizione del problema c'è qualcosa che non torna. Tu hai creato 3 colonne Verbali, Sinistri, Addebiti vari.....sono tutti valori che potresti indicare come Causale in una colonna sola. Cioè è più sensato che tu abbia le seguenti colonne:
    Data: tipo Data/ora
    Causale: testo
    Importo: Numerico o Valuta

    così, se nello stesso giorno hai un Verbale, un Sinistro, un Furto, un Pagamento bolletta, potrai includere tutti quelli che vuoi e poi sommarli Data per Data (o anche Periodo per Periodo da te scelto).
    Ciao Osvaldo, si in effetti nella tabella posso fare cosi'... l'unico problema e' che in un futuro report queste tre voci devono essere distinte... ecco perche' avevo pensato a 3 campi differenti! dici che si puo' fare?
  • Re: Query di ricerca... problema risultato

    Se strutturi bene, direi proprio di sì.
    Comunque, perchè ti poni il limite a sole 3 voci? Per come te l'ho proposto io, il campo Causale può avere infiniti valori.
    Se però ti preme mettere in evidenza questi 3 valori......personalmente penso che rischi di bloccare il tuo contesto...ma, volendo rispettare il tuo volere e rimanendo in una logica Access, ti converrà domani isolare in una tabella Causali questi 3 valori e metterli in relazione uno-a-molti.
    Ai fini di un futuro report, questo funzionerà alla perfezione e rientra coerentemente in una logica Access.
    Se non vuoi isolare in una nuova tabella, quando crei il report, al campo Causale, potresti impostare la proprietà "Nascondi duplicati" a Sì.
  • Re: Query di ricerca... problema risultato

    Allora ho fatto cosi':
    Ho fatto una tabella che ho chiamato "Addebiti-Rimborsi" con questi campi : Verbali, Sinistri, Addebiti Vari, Rimborsi, Data.. e' relazionata uno a molti con la tabella Angrafica dove ho i nominatvi delle persone....
    Ho fatto una query dove ho inserito il nominativo dalla tabella "Anagrafica" e le voci della Tabella "Addebiti-Rimborsi" con questo criterio "Like "*" & [Inserisci Nome] & "*" in modo da farmi chiedere il nominativo della ricerca... La query funziona...
    Il problema nasce quando io devo inserire nella query anche altri campi di altre tabelle che mi sono necessari per il risultato finale che devo avere!
    si tratta di dipendenti quindi nel report finale oltre ai valori che ho descritto sopra devo avere anche il totale ore e/o presenze lavorate con il relativo importo finale (che sarebbe l'importo di una busta paga) che deve derivare dal calcolo matematico che deve fare (ma qui non ho problemi, ne avevamo gia' parlato ed ho risolto grazie anche a te).
    Infatti appena inserisco in questa query il campo "ore" o "presenza" che prendo da un'altra tabella ecco che arriva il problema dei duplicati... anche se nel campo verbali ho messo un solo importo lui me lo moltiplica per tutte le volte che il dipendente e' presente e non solo alla data che gli ho scritto!
    Esempio: se al dipendente risultano presenze dal 01/05/2012 al 30/05/2012 ed io il giorno 05/05/2012 vado ad inserirgli una verbale, la query mi restituisce il valore del verbale per tutti i giorni di presenza e non solo il giorno 05/05/2012... ECCO DOVE STA IL PROBLEMA
  • Re: Query di ricerca... problema risultato

    Mi sa che ti sei rifiutato di mettere il campo Causale e inserire "valori" nei record di questo campo del tipo (anche soltanto):
    Verbale
    Sinistro
    Altri addebiti
    (ripeto, potresti anche isolarli in una apposita tabella Causali a parte, questa tabella Causali avrà soltanto 3 record con soltanto quei 3 valori che puoi decidere di relazionare con il campo Causale della tabella di cui parliamo sempre).

    Luciopooh ha scritto:


    Esempio: se al dipendente risultano presenze dal 01/05/2012 al 30/05/2012 ed io il giorno 05/05/2012 vado ad inserirgli una verbale, la query mi restituisce il valore del verbale per tutti i giorni di presenza e non solo il giorno 05/05/2012
    Se segui il mio consiglio, nella query della citazione che fai, dovrai filtrare sia Data------> Like "05/07/2012", sia nel campo Causale---->Like "Verbale" e otterrai soltanto il Verbale del 05/05/2012.
  • Re: Query di ricerca... problema risultato

    Ok provo come dici tu perche' mi sa che funziona, ho solo un problema.... Io faccio una tabella con "Importo" , "Casuale".. e fino qui ok, il mio problema pero' e' che alcuni importi dovranno essere sottratti altri addizionati in funzione del report finale di cui parlavo per avere il totale della busta paga!
    Ora come dici tu e' corretto ma come risolvo il problema matematico se faccio un unico campo se pur descrittivo con la casuale? Se ho ben capito questo e' quello che mi consigli:
    Es. "Importo" "casuale"
    50 Verbale
    20 Rimborso benzina

    come vedi, il verbale devo addebitarlo successivamente, mentre il rimborso devo accreditarlo.
    Come risolvo This???
  • Re: Query di ricerca... problema risultato

    Il campo Numerico o Valuta dovrebbe avere la possibilità di includere valori negativi (controlla tra le proprietà del campo stesso). Mettici un meno davanti e vedi se funziona.
  • Re: Query di ricerca... problema risultato

    Ok ma se l'importo e' unico ed e' solo identificato da una nota come faccio?
  • Re: Query di ricerca... problema risultato

    Inventa un nuovo valore per la Causale, può essere "Vario", può essere Null oppure una Stringa di lunghezza zero, oppure il valore "0" (come testo)....vedi un po' tu.
Devi accedere o registrarti per scrivere nel forum
11 risposte