Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-01-2003, 16:20   #1
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
[VB] La funzione SUM() su SQL Server 2000

Devo fare la somma di un campo della mia Tabella, il Campo "Quantita",

in MySQL esiste la funzione SUM(#nome_campo_da_sommare#), SELECT ID,Nome,Cognome,SUM(Quantita) FROM Contatti

ma in sql server 2000 come si fa ???
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 16:43   #2
Duncan
Senior Member
 
L'Avatar di Duncan
 
Iscritto dal: Nov 1999
Città: Sesto Fiorentino, Firenze
Messaggi: 8444
Esattamente nello stesso modo

magari ti consigli di cambiarla così è più chiara... almeno per me

SELECT ID,Nome,Cognome,SUM(Quantita) AS TotaleQuantita FROM Contatti
Duncan è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:05   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Le funzioni di aggregazione quali Sum, Max, Min, Avg sono solitamente standard in tutti i linguaggi SQL...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:12   #4
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
FUNZIONA!!!

Codice:
Dim oComm As New SqlCommand("SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,Quantita FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = '" & lwClientResoconto.SelectedItems.Item(0).Text & "'", oConn)


Con "SUM()" NON FUNZIONA!!!

Codice:
Dim oComm As New SqlCommand("SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,SUM(Quantita) FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = '" & lwClientResoconto.SelectedItems.Item(0).Text & "'", oConn)
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:16   #5
Duncan
Senior Member
 
L'Avatar di Duncan
 
Iscritto dal: Nov 1999
Città: Sesto Fiorentino, Firenze
Messaggi: 8444
beh è normale se i campi che hai nella SELECT e su cui non fai SUM() non li includi in una grausola "GROUP BY" se li vuoi raggruppare per ID_Articolo, ID_Cliente ecc...

Altrimenti li ltogli e lasci solo la SUM()
Duncan è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:24   #6
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Mi estrae solo il primo Articolo e poi mi da Errore ancora prima di estrarre la prima Quantita...

Codice:
oConn.Open()
Dim oComm As New SqlCommand("SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,SUM(Quantita) FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = '" & lwClientResoconto.SelectedItems.Item(0).Text & "' GROUP BY Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Dim oRead As SqlDataReader = oComm.ExecuteReader
While oRead.Read()
li = lwResocontoTotale.Items.Add(oRead("Articolo"))
li.SubItems.Add(oRead("Quantita"))
End While
oConn.Close()
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:26   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Infatti... La Sum deve ritornare un solo record...quindi o metti come solo campo del risultato della query una Sum o devi usare Group By...
Nel secondo caso nella Select puoi selezionare solamente i campi per i quali raggruppi o campi per i quali non raggruppi, ma per cui specifichi una funzione di aggregazione (come ad esempio al Sum)...

Un esempio:

SELECT Nome, Cognome, Count(IDFattura) As NumeroFatture, Sum(Importo) As TotaleImporto
FROM AnagraficaClienti, Fatture
WHERE AnagraficaClienti.IDCliente = Fatture.IDClient
GROUP BY Nome, Cognome
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:27   #8
Duncan
Senior Member
 
L'Avatar di Duncan
 
Iscritto dal: Nov 1999
Città: Sesto Fiorentino, Firenze
Messaggi: 8444
hai provato ad eseguire la query nel Query Analyzer?
Duncan è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:28   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Comuqnue VB non è l'ambiente migliore per testare le query...molto meglio testarle con un client testuale almeno si possono fare cambiamenti e test molto più velocemente che in un programma completo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:37   #10
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Quote:
Originally posted by "Duncan"

hai provato ad eseguire la query nel Query Analyzer?
Come mi puo' aiutare ???
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 17:38   #11
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Quote:
Originally posted by "cionci"

Infatti... La Sum deve ritornare un solo record...quindi o metti come solo campo del risultato della query una Sum o devi usare Group By...
Nel secondo caso nella Select puoi selezionare solamente i campi per i quali raggruppi o campi per i quali non raggruppi, ma per cui specifichi una funzione di aggregazione (come ad esempio al Sum)...

Un esempio:

SELECT Nome, Cognome, Count(IDFattura) As NumeroFatture, Sum(Importo) As TotaleImporto
FROM AnagraficaClienti, Fatture
WHERE AnagraficaClienti.IDCliente = Fatture.IDClient
GROUP BY Nome, Cognome

Scusa ma, "NumeroFatture" e "TotaleImporto" sono due nomi delle tue tabelle ???
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 18:06   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No sono il nome delle collone del risultato della query in cui verranno riportate le varie somme e conteggi...

Ti faccio un esempio...

Tabella Fatture
IDFattura IDCliente Importo
1 1 100
2 1 200
3 2 111
4 2 100
5 1 200

Tabella AnagraficaClienti
IDCliente Nome Cognome
1 Pinco Pallino
2 Tizio Caio

Il risultato della query sarà :

Nome Cognome NumeroFatture TotaleImporto
Pinco Pallino 3 500
Tizio Caio 2 211

Comunque questo sono cose abbastanza base dell'SQL... Ti conviene dare un'occhiata a qualche guida...anche su internet...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 18:29   #13
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Scusami ma ho trovato un altro metodo, e forse piu' facile ma non mi funziona!!!

Codice:
Dim oComm As New SqlCommand("SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,(SELECT SUM(Quantita) FROM Consistenza C WHERE C.ID_Articolo = Consistenza.ID_Articolo) FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = '" & lwClientResoconto.SelectedItems.Item(0).Text & "'", oConn)
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 18:42   #14
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Quote:
Originally posted by "Duncan"

hai provato ad eseguire la query nel Query Analyzer?
COME SI USA ???
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 18:50   #15
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
FUNZIONA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Codice:
Dim oComm As New SqlCommand("SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,(SELECT SUM(Quantita)FROM Consistenza C WHERE C.ID_Articolo = Consistenza.ID_Articolo)AS Quantita FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = '" & lwClientResoconto.SelectedItems.Item(0).Text & "'", oConn)
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 09:55   #16
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
vorrei chiedere solamente un ultima cosa e poi ho finito questa query......


alla solita Query in questione, dovrei fargli fare pure uno smaltimento degli Articoli identici, cioe':

Di tutti gli "Articoli" con Nome identico che trova nella Tabella "Consistenza", ne deve visualizzare solo uno,

CHIARAMENTE!!! la frase esatta e' : di tutti gli "ID_Articolo" che trovi nella Tabelle "Consistenza", visualizzane solo uno,

MA!!! pur continuando a Sommare TUTTE le Celle "Quantita".........

LE MIE TABELLE:

1)Consistenza = |ID_Articolo|ID_Client|Quantita|
2)Client = |ID|Nome|Cognome|
3)Articoli = |ID|Articolo|

Ci possiamo arrivare ???
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 10:15   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
SQL Server dovrebbe supportare anche le subquery nel from:

SELECT DISTINCT * FROM (la tua query)

Attento al formato della query...non so se bisogna usare le tonde o le quadre...oppure se c'è bisogno di rinominare la query per assegnargli un nome...
In Access si fa così (mi sembra):

SELECT DISTINCT * FROM [la tua query]. AS Tabella;

Comunque...ripeto...queste cose sono abbastanza basilari per chi deve lavorare con MS SQL...ti conviene cercare una guida per l'SQL di MS SQL...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:07   #18
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Ho provato a fare questo tentativo MA!!!!!!

Codice:
SELECT DISTINCT ID_Articolo FROM (SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,(SELECT SUM(Quantita)FROM Consistenza C WHERE C.ID_Articolo = Consistenza.ID_Articolo)AS Quantita FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = 1)AS Consistenza
con il Query Analyzer mi da questo errore:

Server: messaggio 8156, livello 16, stato 1, riga 1
La colonna 'ID' è stata specificata più volte per 'Consistenza'.
race2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:10   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non la puoi richiamare nuovamente Consistenza...dagli un altro nome...
Inoltre devi specificare * dopo distinct altrimenti nel risultato trovi solamente gli ID...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:13   #20
race2
Senior Member
 
Iscritto dal: Aug 2000
Messaggi: 1209
Quote:
Originally posted by "cionci"

Non la puoi richiamare nuovamente Consistenza...dagli un altro nome...
Inoltre devi specificare * dopo distinct altrimenti nel risultato trovi solamente gli ID...
Codice:
SELECT DISTINCT * FROM (SELECT Consistenza.ID_Articolo,Consistenza.ID_Client,Articoli.ID,Client.ID,Articolo,(SELECT SUM(Quantita)FROM Consistenza C WHERE C.ID_Articolo = Consistenza.ID_Articolo)AS Quantita FROM Consistenza,Client,Articoli WHERE Consistenza.ID_Articolo = Articoli.ID AND Consistenza.ID_Client = Client.ID AND ID_Client = 1)AS Consistenza2
ERRORE!!!

Server: messaggio 8156, livello 16, stato 1, riga 1
La colonna 'ID' è stata specificata più volte per 'Consistenza2'.
race2 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX sta provando le piastrelle isolan...
Il National Reconnaissance Office statun...
Volkswagen avvia la produzione su CEA: c...
La crisi delle memorie non influenzer&ag...
MoM-z14 è la galassia scoperta da...
Da Sony nuovi display professionali dell...
Com'è fatta una delle e-bike pi&u...
iPhone 16 domina il 2025: ecco la classi...
Huawei a supporto delle startup: potenzi...
Iliad è il miglior operatore di l...
Le pompe di calore parlano italiano: Bon...
Moltbot non è solo un chatbot: ag...
Sinner e Alcaraz fermati dall'arbitro: i...
L'audio-video professionale arriva a MIR...
Musk fa i complimenti alla Cina: nel set...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v