QRY - Campo calcolato, conteggio di ogni riga

di il
7 risposte

QRY - Campo calcolato, conteggio di ogni riga

Un buongiorno a tutti!
Vi chiedo un aiuto,
sto studiando Access e SQL , in una query avrei la necessità di impostare un campo calcolato, dove per ogni riga ( record ) ci sia il numero progressivo...
Ad esempio:

NUMERO RIGA | DATI
NUM001 ....
NUM002 ----
....


io per ottenere la formattazione voluta ho fatto: NUMERO RIGA: "NUM"& Format (1;"000")

In questo modo ottengo per ogni riga NUM001 , come posso fare per ottenere il conteggio progressivo ?

GRAZIE MILLE!

7 Risposte

  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Facendo varie prove ho trovato un escamotage,
    in pratica ho aggiunto un campo contatore alla tabella su cui viene fatta la query,
    nella query ho fatto così:

    NUMERO RIGA: "NUM" & Format([Tabella1].[ID];"000")

    così per ogni riga esce
    NUM0001
    NUM002
    ecc...

    la stessa cosa non si può ottenere senza mettere un campo contatore alla tabella ?

    grazie!
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Per me hai improntato il tuo discorso su un piano depistante. Un campo contatore (tabella) ha uno scopo più di garanzia di univocità che di conteggio del singolo record. Meglio sarebbe se tu contestualizzassi tutto il discorso. Puoi dirci i campi della tabella o, se si tratta di query, quali sono le tabelle (con relativi campi) che concorrono alla sua formazione?
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Ciao!
    La tabella è solo una e contiene un unico campo di testo,
    la query è basata su questa tabella dove mostro tutti i record di quella tabella e vorrei nella qry aggiungere una colonna dove mi numera ogni riga...
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Ci sarebbe una particolare esigenza per cui la parola "patata" che sta al 54esimo record venga associata al numero 54? Penso di no.
    La soluzione di aggiungere un campo contatore alla tabella mi sembra che basta e avanza. Usa solo la tabella e la query non ti serve.
    Avresti detto però che vuoi vedere scritto NUM001, NUM002...non ricordo bene, ma pare che si possa creare un formato personalizzato del contatore. In alternativa crea una query con campo calcolato la formula che avresti creato tu:
    NUMERO RIGA: "NUM" & Format([Tabella1].[ID];"000")
    se ti funziona.
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Prendi il database NWind.mdb e prova questa query:
    
    SELECT 
       Count(uu) AS num, a.CustomerID, a.CompanyName, a.ContactName
    FROM 
       Customers a, (SELECT b.CustomerID, b.CompanyName, 1 AS uu FROM Customers b) b
    WHERE a.CustomerID + a.CompanyName >  b.CustomerID + b.CompanyName
    GROUP BY a.CustomerID, a.CompanyName, a.ContactName
    ORDER BY Count(uu)
    
    Il risultato sarà questo:
    
    num	CustomerID	CompanyName	ContactName
    1	ANATR	Ana Trujillo Emparedados y helados	Ana Trujillo
    2	ANTON	Antonio Moreno Taquería	Antonio Moreno
    3	AROUT	Around the Horn	Thomas Hardy
    4	BERGS	Berglunds snabbköp	Christina Berglund
    5	BLAUS	Blauer See Delikatessen	Hanna Moos
    6	BLONP	Blondel père et fils	Frédérique Citeaux
    7	BOLID	Bólido Comidas preparadas	Martín Sommer
    8	BONAP	Bon app'	Laurence Lebihan
    9	BOTTM	Bottom-Dollar Markets	Elizabeth Lincoln
    .........
    
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    elisa2014 ha scritto:


    facendo varie prove ho trovato un escamotage,
    in pratica ho aggiunto un campo contatore alla tabella su cui viene fatta la query,
    nella query ho fatto così:

    NUMERO RIGA: "NUM" & Format([Tabella1].[ID];"000")

    così per ogni riga esce
    NUM0001
    NUM002
    ecc...

    la stessa cosa non si può ottenere senza mettere un campo contatore alla tabella ?

    grazie!
    o per semplificare ...

    prova a sostituire il campo calcolato che hai usato nella query con questo:
    NUMERO RIGA: "NUM" & Format(CStr(DCount(1;"Query1";"ID<=" & CStr([ID])));"000")
    dove "Query1" è il nome della query stessa...

    puoi anche cancellare la colonna ID (campo contatore) dalla query se non vuoi vederla, ma non puoi cancellarla dalla tabella...


    il vantaggio sta nel fatto che se viene cancellato un record dalla tabella, il conteggio del campo calcolato non viene compromesso come accade invece nel campo calcolato che hai usato tu...

    a presto

    ps:
    l'ordinamento è da effettuare secondo il campo calcolato...
  • Re: QRY - Campo calcolato, conteggio di ogni riga

    Esatto è proprio quello che volevo ottenere!
    GRAZIE MILLE!!!
Devi accedere o registrarti per scrivere nel forum
7 risposte