Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Eseguire una sub-query

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Eseguire una sub-query

    Ciao a tutti.

    Con questa query SELECT DISTINCT:

    codice:
      SQL = "SELECT DISTINCT "
      SQL = SQL & " tbl.UTENTE AS UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE) AS YEAR, "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) AS MONTH, "
      SQL = SQL & " COUNT(tbl.ID_UTENTE) AS TOT_UTENTE "
      SQL = SQL & " FROM "
      SQL = SQL & " tbl "
      SQL = SQL & " GROUP BY "
      SQL = SQL & " tbl.UTENTE, "
      SQL = SQL & " tbl.ID_UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE), "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) "
      SQL = SQL & " ORDER BY "
      SQL = SQL & " tbl.UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE), "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) ASC"

    estraggo da una tabella di un db access i seguenti dati che riepilogano le operazioni eseguite sul db da ciascun utente suddivise per anno e per mese:

    codice:
    UTE  OPERAZ	YEAR	MONTH
    			
    1	5	2006	Maggio
    1	6	2006	Giugno
    1	6	2006	Luglio
    1	1	2006	Agosto
    1	2	2006	Settembre
    1	4	2006	Ottobre
    1	6	2006	Novembre
    1	4	2006	Dicembre
    1	2	2007	Gennaio
    1	1	2007	Marzo
    2	1	2007	Marzo
    Adesso però mi servirebbe estrarre il totale generale per ogni utente ed ho letto sul forum che dovrei usare una sub-query.

    Potete darmi qualche suggerimento su come impostare questa sub-query (sempre se in access è possibile) per avere il seguente dato ?:

    codice:
    totale operazioni UTENTE 1 = 37
    totale operazioni UTENTE 2 = 1
    Vi ringrazio, saluti.

  2. #2
    la stessa di prima, ma senza la group by per data

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da optime
    la stessa di prima, ma senza la group by per data
    Grazie per la risposta, ma se intendi questo:

    codice:
      SQL = "SELECT DISTINCT "
      SQL = SQL & " tbl.UTENTE AS UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE) AS YEAR, "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) AS MONTH, "
      SQL = SQL & " COUNT(tbl.ID_UTENTE) AS TOT_UTENTE "
    
      SQL = SQL & " (SELECT DISTINCT "
      SQL = SQL & " tbl.UTENTE AS UTENTE, "
      SQL = SQL & " COUNT(tbl.ID_UTENTE) AS Totale "
      SQL = SQL & " FROM "
      SQL = SQL & " tbl "
      SQL = SQL & " GROUP BY "
      SQL = SQL & " tbl.UTENTE, "
      SQL = SQL & " tbl.ID_UTENTE "
      SQL = SQL & " ORDER BY "
      SQL = SQL & " tbl.UTENTE ASC)"
    
      SQL = SQL & " FROM "
      SQL = SQL & " tbl "
      SQL = SQL & " GROUP BY "
      SQL = SQL & " tbl.UTENTE, "
      SQL = SQL & " tbl.ID_UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE), "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) "
      SQL = SQL & " ORDER BY "
      SQL = SQL & " tbl.UTENTE, "
      SQL = SQL & " Year(tbl.DATA_OPERAZIONE), "
      SQL = SQL & " Month(tbl.DATA_OPERAZIONE) ASC"
    Mi restituisce:

    Error Type:
    Microsoft JET Database Engine (0x80004005)
    You have written a subquery that can return more than one field without using the EXISTS reserved word in the main query's FROM clause. Revise the SELECT statement of the subquery to request only one field.

  4. #4
    no, fanne un'altra, separata

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da optime
    no, fanne un'altra, separata
    Grande !!!! Grazie.

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.