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

    [access] query di aggiornamento condizionale

    Ciao a tutti.

    Ho una query che mi inserisce in una tabella chiamata totale i dati presi con un select da altre tabelle (che non posso modificare).

    questo è il mio codice:

    codice:
    INSERT INTO totale ( sigla, Codice, descrizione, [Prezzo riv], [Qta cart], barcode, [Data Variaz], spunta, [Fam stat] ) SELECT [query per totale].sigla, [query per totale].Codice, [query per totale].descrizione, [query per totale].[Prezzo riv], [query per totale].[Qta cart], [query per totale].barcode, [query per totale].[Data Variaz], [query per totale].spunta, [query per totale].[Fam stat] FROM [query per totale];
    tutto funziona ma adesso vorrei aggiungere un campo "sconto" che mi si riempia automaticamente in base al campo "Fam stat" se per esempio in "Fam stat" c'è 1 devo mettere in sconto A (tipo sotto)

    campo fam stat campo sconto
    1 A
    2 B
    3 C

    e così via...

    Come posso fare? sono ignorante di sql...

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    44
    Quante tipologie di sconto hai?
    nell'esempio ne riporti tre, in questo caso potresti usare un iif nidificato.
    Se le tipologie di sconto aumentano io mi creerei una tabella sconti che abbia come id il corrispettivo valore in fam stat.
    Ciao

  3. #3
    grazie della risposta, sono 6 e non aumentano, quindi niente tabella, mi fareseti un esempio in codice perfavore?

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Premesso che ho ipotizzato che il tuo attuale campo
    " Fam stat " sia numerico con valori variabili da 1 a 6
    Ti verra aggiunto nel campo sconto:

    Valore di Fam stat_______Valore di sconto
    ______ 1 _______________________ A ______
    ______ 2 _______________________ B ______
    ______ 3 _______________________ C ______
    ______ 4 _______________________ D ______
    ______ 5 _______________________ E ______
    ______ 6 _______________________ F ______
    __ Tutti gli altri numeri __________ XXXXX ____

    __________________________________________________ ____________

    Dovrai aggiungere alla tua attuale tabella " totali "
    un campo "sconto" formato testo lunghezza 5 ( o superiore )

    __________________________________________________ ___________


    La query diventa questa:
    codice:
    INSERT INTO totale 
    
    ( 
    sigla, 
    Codice, 
    descrizione, 
    [Prezzo riv], 
    [Qta cart], 
    barcode, 
    [Data Variaz], 
    spunta, 
    [Fam stat], 
    sconto 
    )
    
    SELECT 
    
    Q.sigla, 
    Q.Codice, 
    Q.descrizione, 
    Q.[Prezzo riv], 
    Q.[Qta cart], 
    Q.barcode, 
    Q.[Data Variaz], 
    Q.spunta, 
    Q.[Fam stat], 
    IIf(Q![Fam stat]=1,"A",IIf(Q![Fam stat]=2,"B",IIf(Q![Fam stat]=3,"C",IIf(Q![Fam stat]=4,"D",IIf(Q![Fam stat]=5,"E",IIf(Q![Fam stat]=6,"F","xxxxx")))))) AS sconto
    
    FROM [query per totale] AS Q
    
    ;


    Saluti
    __________________________________________________ _______________


    ___NB___
    Se mi permetti di andare fuori tema consiglierei di
    evitare spazi nei nomi delle tabelle, query e campi
    Lo spazio ti costringe a inserire poi il nome fra parentesi quadre
    peggiorando la leggibilita del codice ( e rallentando la query ??? )


    Se scrivi nomi piu corti diventa ancora piu facile
    ___ [query per totale].[Data Variaz]
    potrebbe essere
    ___ QuXTot.DatVar
    oppure
    ___ Qu_Tot.Dat_Var

  5. #5
    Ti ringrazio tantissimo, funziona alla perfezione!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.