Visualizzazione dei risultati da 1 a 10 su 10

Discussione: query somma

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488

    query somma

    Ciao a tutti, sto cercando di estrarre da un db access la somma di alcuni rs, ma ricevo il seguente errore :

    codice:
    Microsoft JET Database Engine error '80040e21' 
    You tried to execute a query that does not include the specified expression 'Expr1000' as part of an aggregate function. 
    report_articoli_mag1.asp, line 51
    il codice che ho usato è il seguente :

    codice:
    ("SELECT [Movimentazioni Carico/Scarico Mag].Data, [Elenco Linee di Prodotti].[Linea Prodotti], [Elenco Categorie Articoli].[Categ Art], [Elenco Tipologie Articoli].[Tipo Art], [Elenco Articoli].Descrizione, [Movimentazioni Carico/Scarico Mag].Data, sum([Movimentazioni Carico/Scarico Mag].[Qtà Ord])As Ord, sum([Movimentazioni Carico/Scarico Mag].[Qtà Cons])As Cons, [Elenco Articoli].PU, ([Qtà Ord]-[Qtà Cons]) AS Giac, [Elenco Articoli].CFR, ([PU]*[Giac]) AS Totale FROM [Elenco Tipologie Articoli] RIGHT JOIN ([Elenco Linee di Prodotti] RIGHT JOIN ([Elenco Categorie Articoli] RIGHT JOIN ([Elenco Articoli] RIGHT JOIN [Movimentazioni Carico/Scarico Mag] ON [Elenco Articoli].IDArt = [Movimentazioni Carico/Scarico Mag].IDArt) ON [Elenco Categorie Articoli].IDCategArt = [Elenco Articoli].IDCategArt) ON [Elenco Linee di Prodotti].IDLineaProdotti = [Elenco Articoli].IDLineaProdotti) ON [Elenco Tipologie Articoli].IDTipoArt = [Elenco Articoli].IDTipoArt ORDER BY [Elenco Linee di Prodotti].[Linea Prodotti];")
    Se qualcuno potesse aiutarmi gliene sarei veramente grato

  2. #2
    le funzioni di aggregazione (SUM, MAX, MIN, etc) vogliono la GROUP BY, che nella query non c'è

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Ok, ho trovato qualcosa al riguardo ed ho modificato il codice in questo modo :

    codice:
    ("SELECT [Movimentazioni Carico/Scarico Mag].Data, [Elenco Linee di Prodotti].[Linea Prodotti], [Elenco Categorie Articoli].[Categ Art], [Elenco Tipologie Articoli].[Tipo Art], [Elenco Articoli].Descrizione, sum([Movimentazioni Carico/Scarico Mag].[Qtà Ord])As Ord, sum([Movimentazioni Carico/Scarico Mag].[Qtà Cons])As Cons, [Elenco Articoli].PU, ([Qtà Ord]-[Qtà Cons]) AS Giac, ([PU]*[Giac]) AS Totale FROM [Elenco Tipologie Articoli] RIGHT JOIN ([Elenco Linee di Prodotti] RIGHT JOIN ([Elenco Categorie Articoli] RIGHT JOIN ([Elenco Articoli] RIGHT JOIN [Movimentazioni Carico/Scarico Mag] ON [Elenco Articoli].IDArt = [Movimentazioni Carico/Scarico Mag].IDArt) ON [Elenco Categorie Articoli].IDCategArt = [Elenco Articoli].IDCategArt) ON [Elenco Linee di Prodotti].IDLineaProdotti = [Elenco Articoli].IDLineaProdotti) ON [Elenco Tipologie Articoli].IDTipoArt = [Elenco Articoli].IDTipoArt GROUP BY [Elenco Linee di Prodotti].[Linea Prodotti], [Elenco Categorie Articoli].[Categ Art], [Elenco Tipologie Articoli].[Tipo Art], [Elenco Articoli].Descrizione,[Movimentazioni Carico/Scarico Mag].Data, ([Qtà Ord]-[Qtà Cons]), [Elenco Articoli].PU ORDER BY [Elenco Linee di Prodotti].[Linea Prodotti];")
    ma ancora non mi da la somma dei rs che volevo, me li da tutti singolarmente, dove sbaglio?

  4. #4
    dipende da cosa metti nelle GROUP BY. avrai inserito troppi dettagli

    http://www.w3schools.com/sql/sql_groupby.asp

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Ok, finalmente sono riuscito a trovare la combinazione per "Group by", tuttavia adesso ho un'altro problema, faccio calcolare la differenza tra "sum qtà ord" e "sum qtà cons" che chiamo "Giac" e vorrei inserire la clausula "Where" affinchè mi vengano restituiti solo i rs ove "Giac" sia >"0"; ho provato in vari modi ma mi da sempre errore del tipo :

    codice:
    Microsoft JET Database Engine error '80040e10' 
    No value given for one or more required parameters.
    mostro il
    codice:
    ("SELECT [Elenco Linee di Prodotti].[Linea Prodotti], [Elenco Categorie Articoli].[Categ Art],[Elenco Tipologie Articoli].[Tipo Art], [Elenco Articoli].Descrizione, sum([Movimentazioni Carico/Scarico Mag].[Qtà Ord])As Ord, sum([Movimentazioni Carico/Scarico Mag].[Qtà Cons])As Cons,((sum([Movimentazioni Carico/Scarico Mag].[Qtà Ord]))-(sum([Movimentazioni Carico/Scarico Mag].[Qtà Cons]))) AS Giac FROM [Elenco Tipologie Articoli] RIGHT JOIN ([Elenco Linee di Prodotti] RIGHT JOIN ([Elenco Categorie Articoli] RIGHT JOIN ([Elenco Articoli] RIGHT JOIN [Movimentazioni Carico/Scarico Mag] ON [Elenco Articoli].IDArt = [Movimentazioni Carico/Scarico Mag].IDArt) ON [Elenco Categorie Articoli].IDCategArt = [Elenco Articoli].IDCategArt) ON [Elenco Linee di Prodotti].IDLineaProdotti = [Elenco Articoli].IDLineaProdotti) ON [Elenco Tipologie Articoli].IDTipoArt = [Elenco Articoli].IDTipoArt WHERE (Giac > 0) GROUP BY Descrizione, [Tipo Art],[Categ Art], [Linea Prodotti];")
    come devo correggerlo?

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    :master: ho provato così

    codice:
    ............GROUP BY Descrizione, [Tipo Art],[Categ Art], [Linea Prodotti] HAVING (Giac > 0)
    ma mi da lo stesso errore

    codice:
    Microsoft JET Database Engine error '80040e10' 
    No value given for one or more required parameters

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    pardon sbagliavo parametro! mettevo ancora "Giac"
    Grazie, risolto

  9. #9
    mau, in generale non puoi interrogare un alias! cioè:

    se hai

    ... SUM(campo) AS mySum ...

    non puoi fare

    ... HAVING mySum > 0 ...

    ma devi comunque ripetere

    ... HAVING SUM(campo) > 0 ...

  10. #10
    Originariamente inviato da Prof_Mauri
    pardon sbagliavo parametro! mettevo ancora "Giac"
    Grazie, risolto
    ----------------------------------------------------
    nello spirito del forum, spiega come hai fatto, così aiuterai qualche altro forumista che dovesse avere lo stesso problema.
    ----------------------------------------------------

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.