Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
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


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
AWS rinnova lo stack dell’IA: Trainium3,...
AWS entra nell'era degli agenti: il keyn...
Roscosmos: inventario a bordo della ISS ...
Arduino viene acquisita da Qualcomm e ca...
Un razzo spaziale Arianespace Vega C ha ...
Terra Next dà il via a Scale-Up P...
Il veicolo riutilizzabile ESA Space Ride...
Un Mousepad per mirare meglio: uno youtu...
Tokyo Electron sotto accusa: Taiwan cont...
L'ESA sta cercando alternative all'utili...
iliad TOP 250 PLUS e TOP 300 PLUS: valan...
FRITZ! a Sicurezza 2025: connessioni WiF...
I 18enni di oggi non fanno più la...
Super offerte Apple: iPhone 16e a 529€ e...
Torres EVT arriva in Italia con listino ...
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: 22:12.


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