Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Condizione IIF su DB Access

    Salve a tutti,

    devo realizzare una QUERY su ACCESS che mi dia sempre il totale dei crediti degli utenti di un DB, questo è il codice prelevato da ACCESS:

    SELECT [QUERY_CONTA_Crediti+].ID_Cliente, Sum([QUERY_CONTA_Crediti+].SommaDiCrediti) AS PIU, Sum([QUERY_CONTA_Crediti-].SommaDiCrediti) AS MENO, Sum([QUERY_CONTA_Crediti+]![SommaDiCrediti]-[QUERY_CONTA_Crediti-]![SommaDiCrediti]) AS TOTALECREDITI
    FROM [QUERY_CONTA_Crediti+] LEFT JOIN [QUERY_CONTA_Crediti-] ON [QUERY_CONTA_Crediti+].ID_Cliente = [QUERY_CONTA_Crediti-].ID_Cliente
    GROUP BY [QUERY_CONTA_Crediti+].ID_Cliente;

    Questa query altro non fa che sottrarre dai crediti positivi i crediti negativi e darci il totale dei crediti.

    Ma quando crediti negativi non c'è ne sono il campo TOTALECREDITI è nullo ed io invece vorrei riportati i crediti positivi.

    Credo che basterebbe dire al campo MENO che se è nullo di darci 0 e il problema si risolverebbe ... peccato che non ci sono riuscito, ho provato con una espressione (IIF) ma non ci riesco proprio .... mi potete dare una mano ?
    Pippo Giacalone
    giacalone@tin.it

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: Condizione IIF su DB Access

    Originariamente inviato da peppeweb

    Credo che basterebbe dire al campo MENO che se è nullo di darci 0 e il problema si risolverebbe
    http://www.techonthenet.com/access/f...dvanced/nz.php

  3. #3
    scusa Nicola ma potresti farrmi un'esempio di come dovrei creare questa condizione ?
    Pippo Giacalone
    giacalone@tin.it

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    semplicemente

    nz(nome_campo)

    convertirà il campo con valore null a 0.

  5. #5
    mi sembra di ricordare che nz() sia una funzione solo di access (funziona solo *dentro* access); quindi dà errore con ado, ado.net ecc

    meglio usare la IIF

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    In aggiunta a quanto dice optime, faccio presente che alcune funzioni di Access che PRIMA funzionavano anche nelle query (fino a 2007), non è detto che funzionino ancora se è installato MS Access 2010.

    Purtroppo l'ho sperimentato personalmente:
    la funzione Round() che fino ad Access 2007 ha sempre funzionato; testato su Access 2010 no, ed ho dovuto riscrivere il codice.

    Attenzione: non mi riferisco all'uso dell'applicazione MS Access, ma al solo database MDB (che tra l'altro è in formato 2002-2003).

    Microsoft finirà mai di stupirci?
    Non credo visto l'ultimo scherzetto (blocco dell'accesso ai dati) causato dal SP1 di Windows Seven 64bit.


  7. #7
    scusate il ritardo ma sono appena rientrato adesso da lavoro .... ho provato a fare come dice Nicola ma purtroppo mi da errore (come dice optime) potreste farmi un'esempio utilizzando IIF ?
    Pippo Giacalone
    giacalone@tin.it

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    iif(campo is null,0,campo)

  9. #9
    Grazie Nicola,

    con il tuo esempio mi dava errore .... ho provato così:
    MENO: IIf(IsNull([MENO2]);0;[MENO2])
    e mi funziona

    Grazie di nuovo a tutti
    Pippo Giacalone
    giacalone@tin.it

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La mia era la sintassi per la visualizzazione sql. Se lasci che sia access a generare la query e la scrivi tramite la griglia allora ci vuole il ;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.