Query con raggruppamenti

di il
11 risposte

Query con raggruppamenti

Saluti a tutti
Da diverso tempo cerco di risolvermi un problema su un DB creato per caricare prodotti di magazzino di un laboratorio, ed avere i relativi valori a fine anno.
Sono certo che a causa della mia cattiva spiegazione, non mi è arrivato il vs aiuto.
Provo a essere più chiaro possibile.
Sul citato DB ho creato la Tbl_Carico di magazzino con i campi che si vedono sulle relazioni del DB che allego.
Per potere avere tutti i singoli valori e le rimanenze di quanto caricato, ho creato la query SWingoli Carichi di cui allego l’SQL. SELECT [Carico di magazzino].ID, [Carico di magazzino].Data, [Carico di magazzino].Fornitore, [Carico di magazzino].Estremi_Docum, [Carico di magazzino].[Cod Art], [Carico di magazzino].[ID Articolo], [Carico di magazzino].Tipologia, [Carico di magazzino].[Un Mis], [Carico di magazzino].Qtà, [Carico di magazzino].Consumo, [Qtà]-[Consumo] AS Rimanenza, [Carico di magazzino].Imponibile, [Carico di magazzino].Iva, [Rimanenza]*[Imponibile] AS Valore, [Rimanenza]*[Imponibile]*(1+[Iva]) AS [Val Ivato]FROM Articoli INNER JOIN [Carico di magazzino] ON Articoli.IDArt = [Carico di magazzino].[ID Articolo];
Fino a questo punto tutto OK ma il mio problema inizia appena voglio creare una query di riepilogo dove possa vedere i totali dei singoli articoli con i relativi valori.
Ho creato la query Totale carichi,di cui allego l’SQLSELECT [Carico di magazzino].Fornitore, [Carico di magazzino].[Cod Art], [Carico di magazzino].[ID Articolo], [Carico di magazzino].Tipologia, [Carico di magazzino].[Un Mis], Sum([Carico di magazzino].Qtà) AS SommaDiQtà, Sum([Carico di magazzino].Consumo) AS SommaDiConsumo, Sum([Singoli Carichi].Rimanenza) AS SommaDiRimanenza, Sum([Rimanenza]*[Carico di magazzino]![Imponibile])/Sum([Carico di magazzino]![Qtà]) AS Imponibile, [Carico di magazzino].Iva, Articoli.ScortaMin, IIf([Rimanenza]<[ScortaMin]," Fare Ordine","") AS Sottoscorte, [Imponibile]*[Rimanenza] AS [Val tot Imponibile], [Imponibile]*(1+[Iva]) AS Prezzo, [Prezzo]*[Rimanenza] AS [Val ivato Articolo]
FROM (Articoli INNER JOIN [Carico di magazzino] ON Articoli.IDArt = [Carico di magazzino].[ID Articolo]) INNER JOIN [Singoli Carichi] ON [Carico di magazzino].ID = [Singoli Carichi].ID
GROUP BY [Carico di magazzino].Fornitore, [Carico di magazzino].[Cod Art], [Carico di magazzino].[ID Articolo], [Carico di magazzino].Tipologia, [Carico di magazzino].[Un Mis], [Carico di magazzino].Iva, Articoli.ScortaMin; ( faccio presente che l’imponibile del prezzo deve essere calcolato con una media ponderata dei singoli prezzi) ma mi appare sempre il seguente messaggio: “Il riferimento al campo specificato “IVA” potrebbe essere relativo a più tabelle elencate nella clausola FROM dell’istruzione SQL.
Non ho grande esperienza con access e chiedo a voi se qualcuno può aiutarmi.
Vi ringrazio anticipatamente per l’aiuto che mi darete.
Allegati:
13622_e1caece731f821172f3a10f9eb75373a.png
13622_e1caece731f821172f3a10f9eb75373a.png

11 Risposte

  • Re: Query con raggruppamenti

    Se almeno avessi usato i tag CODE (come prevede il Regolamento)...
  • Re: Query con raggruppamenti

    Scusami per l'ignoranza,
    cosa sono i tag CODE ???
    E per questo non merito una risposta??
    Chiedere è lecito.............................
  • Re: Query con raggruppamenti

    Questo dimostra che non hai letto il Regolamento.
    Ma è così faticoso farlo?

    Non è qui che devi chiedere spiegazioni e/o informazioni.
    Caso mai dovresti chiedere 'al bar dei programmatori':
    https://www.iprogrammatori.it/forum-programmazione/programmatori/
    Ma in questo caso non ha nemmeno senso, basta leggere il Regolamento!

    Noi (intendo i membri del forum) rispondiamo ai quesiti se posti in maniera consona al Regolamento.


    E siccome questo messaggio è OT, meglio chiudere la discussione prima di beccarsi un 'giusto' rimprovero da un Moderatore.
  • Re: Query con raggruppamenti

    ernestosup ha scritto:


    cosa sono i tag CODE ???
    Quando scrivi dentro il rettangolo bianco, facci caso, in alto ci sono alcuni tasti di formattazione.
    B/I/U sono i classici Grassetto/Corsivo/Sottolineato.
    Quote serve per riportare un pezzo di testo scritto da te o un altro utente.
    Code serve per incasellare dentro il rettangolo "stile codice" per una lettura con i caratteri Courier New, più consona alla logica dei programmatori e più leggibile.

    Quindi, prima di inviare il messaggio, seleziona la porzione di testo che è "stile codice" e poi clicca su Code. Clicca in basso su Anteprima per vedere l'effetto che fa, poi su Invia.
  • Re: Query con raggruppamenti

    Grazie Osvaldo,riprovo il tutto.
    Saluti a tutti
    Da diverso tempo cerco di risolvermi un problema su un DB creato per caricare prodotti di un magazzino di un laboratorio, ed avere i relativi valori a fine anno.
    Sul citato DB ho creato la Tbl_Carico di magazzino con i campi che si vedono sull'immagine delle relazioni che allego.
    Per avere tutti i singoli valori e le rimanenze, di quanto caricato, ho creato la query " Singoli Carichi"
    di cui allego l'SQL
    SELECT [Carico di magazzino].ID, [Carico di magazzino].Data, Articoli.Fornitore, [Carico di magazzino].Estremi_Docum, Articoli.[Cod Art], [Carico di magazzino].[ID Articolo], Articoli.Tipologia, Articoli.UM, [Carico di magazzino].Qtà, [Carico di magazzino].Imponibile, [Carico di magazzino].Iva, [Imponibile]*(1+[Iva]) AS Prezzo, [Carico di magazzino].Consumo, [Qtà]-[Consumo] AS Rimanenza, [Rimanenza]*[Imponibile] AS [Val Imponibile], [Rimanenza]*[Prezzo] AS Importo
    FROM Articoli INNER JOIN [Carico di magazzino] ON Articoli.IDArt = [Carico di magazzino].[ID Articolo];
    
    Fino a questo punto tutto OK, ma il mio problema nasce appena voglio creare una query di riepilogo dove possa vedere i totali degli articoli con i relativi valori.
    La query creata si chiama "Totale Carichi" allego l'SQL
    SELECT Articoli.Fornitore, Articoli.[Cod Art], [Carico di magazzino].[ID Articolo], Articoli.Tipologia, Articoli.UM, Sum([Carico di magazzino].Qtà) AS SommaDiQtà, [Carico di magazzino].Iva, Sum([Singoli Carichi]![Rimanenza]*[Singoli Carichi]![Imponibile])/Sum([Singoli Carichi]![Rimanenza]) AS Imponibile, Sum([Carico di magazzino].Consumo) AS SommaDiConsumo, Sum([Singoli Carichi].Rimanenza) AS SommaDiRimanenza, Articoli.ScortaMin, IIf([Rimanenza]<[ScortaMin]," Fare Ordine","") AS Sottoscorte, [Imponibile]*[Rimanenza] AS [Val Imponibile], [Val Imponibile]*(1+[Iva]) AS [Val Articolo]
    FROM (Articoli INNER JOIN [Carico di magazzino] ON Articoli.IDArt = [Carico di magazzino].[ID Articolo]) INNER JOIN [Singoli Carichi] ON [Carico di magazzino].ID = [Singoli Carichi].ID
    GROUP BY Articoli.Fornitore, Articoli.[Cod Art], [Carico di magazzino].[ID Articolo], Articoli.Tipologia, Articoli.UM, [Carico di magazzino].Iva, Articoli.ScortaMin;
    

    Faccio presente che il prezzo imponibile di questa query deve essere calcolato con una media ponderale dei singoli prezzi di acquisto.
    Creata la query al lancio mi appare il seguente messaggio " il riferimenta al campo specificato"Iva" potrebbe essere relativo a più tabelle elencate nella clausola FROM dell'istruzione SQL"
    grazie per la risposta
    Allegati:
    13622_f9bf65e73913c25406cdb3b64e5251a6.png
    13622_f9bf65e73913c25406cdb3b64e5251a6.png
  • Re: Query con raggruppamenti

    Saluti a tutti
    Dopo tanti tentativi sono riuscito a creare la query di raggruppamento di cui allego l’SQL
    SELECT [Singoli Carichi].Fornitore, [Singoli Carichi].[Cod Art], [Singoli Carichi].[ID Articolo], [Singoli Carichi].Tipologia, [Singoli Carichi].UM, Sum([Carico di magazzino].Qtà) AS SommaDiQtà, Sum(Consumi.Usato) AS SommaDiUsato, [SommaDiQtà]-[SommaDiUsato] AS Rimanenza, Sum([Singoli Carichi]![Rimanenza]*[Singoli Carichi]![Imponibile])/Sum([Singoli Carichi]![Rimanenza]) AS Prezzo, [Singoli Carichi].Iva, Sum([Singoli Carichi]![Rimanenza]*[Singoli Carichi]![Imponibile])/Sum([Singoli Carichi]![Rimanenza])*Sum([Singoli Carichi]![Rimanenza]) AS [Val_ Imponibile], Sum([Singoli Carichi]![Rimanenza]*[Singoli Carichi]![Imponibile])/Sum([Singoli Carichi]![Rimanenza])*Sum([Singoli Carichi]![Rimanenza])*(1+[Singoli Carichi]![Iva]) AS [Val_ Ivato], [Singoli Carichi].ScortaMin, IIf([Rimanenza]<[ScortaMin],"FARE ORDINE","") AS Sottoscorte
    FROM ([Singoli Carichi] INNER JOIN [Carico di magazzino] ON [Singoli Carichi].ID = [Carico di magazzino].ID) INNER JOIN Consumi ON ([Carico di magazzino].ID = Consumi.ID) AND ([Singoli Carichi].ID = Consumi.ID)
    GROUP BY [Singoli Carichi].Fornitore, [Singoli Carichi].[Cod Art], [Singoli Carichi].[ID Articolo], [Singoli Carichi].Tipologia, [Singoli Carichi].UM, [Singoli Carichi].Iva, [Singoli Carichi].ScortaMin, IIf([Rimanenza]<[ScortaMin],"FARE ORDINE","");
    
    Ho anche creato la tabella consumi come suggeritomi da Gibra.
    Nonostante ciò, il Db non va.
    Per spiegare meglio cosa non va, allego l'immagine di due esempi e le relazioni per visualizzare le tabelle e la loro normalizzazione.
    Chiedo a qualcuno di voi se può aiutarmi perché continuo a
    Grazie per la risposta.
    Allegati:
    13622_f01493071f2a9aa506ee45a68197b096.png
    13622_f01493071f2a9aa506ee45a68197b096.png

    13622_a2fa2a78a685c7edcd6418fb31d9586c.png
    13622_a2fa2a78a685c7edcd6418fb31d9586c.png
  • Re: Query con raggruppamenti

    Scusate se riprendo un argomento vecchio, ma lo faccio solo per dare la soluzione a beneficio di chi ha visitato l'argomento.
    Quando si crea la query di raggruppamento, "Carichi Totali" non bisogna inserire il campo "Prezzo" in quanto questi è calcolato con una media ponderata e quindi quando viene azzerato l'articolo da errore poiché divide per 0.
    Grazie a tutti per avermi aiutato a risolvere il mio problema.
  • Re: Query con raggruppamenti

    ernestosup ha scritto:


    Ho anche creato la tabella consumi come suggeritomi da Gibra.
    Stai facendo confusione (molta).
    Non so nemmeno cosa sia la tabella consumi, figurati se posso averla suggerita.

    A parte questo, quando fai riferimento a 'qualcosa' detto da 'qualcuno', sarebbe utile riportare il link del post in modo che chi legge possa andare a leggersi quello che è stato scritto, giusto per capire qualcosa.
    Questa tua frase, così com'è esposta in questo contesto, resta incomprensibile, e non significa nulla per chi legge.
  • Re: Query con raggruppamenti

    gibra ha scritto:


    ernestosup ha scritto:


    Ho anche creato la tabella consumi come suggeritomi da Gibra.
    Stai facendo confusione (molta).
    Non so nemmeno cosa sia la tabella consumi, figurati se posso averla suggerita.
    Tutti, almeno una volta nella vita, hanno avuto a che fare con la tabella consumi e ne hanno suggerito la creazione.
  • Re: Query con raggruppamenti

    Chiudo questo argomento dicendo che non voglio scatenare vecchie polemiche,
    ho inteso soltanto dire come ho risolto il mio problema.
    ancora grazie a tutti per gli aiuti dati.
  • Re: Query con raggruppamenti

    Philcattivocarattere ha scritto:


    gibra ha scritto:


    ernestosup ha scritto:


    Ho anche creato la tabella consumi come suggeritomi da Gibra.
    Stai facendo confusione (molta).
    Non so nemmeno cosa sia la tabella consumi, figurati se posso averla suggerita.
    Tutti, almeno una volta nella vita, hanno avuto a che fare con la tabella consumi e ne hanno suggerito la creazione.
    Philcattivocarattere: ma cosa scrivi?
    Mai usata in tutta la mia vita.
    Evitiamo i commenti gratuiti ed inutili, per cortesia.
Devi accedere o registrarti per scrivere nel forum
11 risposte