|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Che tipo di SQL utilizzare?
Ciao a tutti:
Avrei necessità di svolgere la seguente operazione: In una DBGrid devo visualizzare una lista di record che però molte righe sono sempre uguale, l'unica cosa che cambia e il campo della quantità. Io vorrei, di tutti i record dupplicati ne dovrei visualizzare uno solo, ma che però mi possa ricavare la somma del campo quantità, relativo ai record dupplicati: Es. Se io avrei cinque record così strutturati: 1 - Pomodori Qta=1 2 - Pomodori Qta=2 3 - Pomodori Qta=3 4 - Pomodori Qta=4 5 - Pomodori Qta=5 6 - Mele Qta=2 Vorrei poter filtrare questi dati facendo visualizzare una sola volta la voce POMODORI ma però avendo la somma delle quantità in questo caso: - POMODORI QTA=15 - MELE QTA=2 Spero che qualcuno mi posso veramente aiutare in quanto stò uscendo pazza, non riesco a trovare la sintassi corretta per impostare L'SQL... Ciao Carmen!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
select articolo, sum(quantita) as sommaqta [, tutti i campi che ti servono] from tabella group by articolo
questo dovrebbe fare al tuo caso |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
OK! Ci provo e ti faccio sapere. Speriamo che c'è la faccia...
Carmen ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
...a disposizione...
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Son fin d'ora di fare una cattiva figura, ma non c'è lo fatta.
Questa la sintassi che o utilizzata: select Sum(abs(qta)) as sommaqta,Codice,Descrizione from NOMETABELLA group by COSA DEVO SCRIVERE ESATTAMENTE QUI") Alla voce articolo che mi indicavi tù nell'sql cosa intendevi.... Carmen |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
direi di mettere group by codice
immagino che sia il campo che ti da' l'univocita' se vuoi sono anche su irc (canale #rimini cerca di _voyager_) magari facciamo piu' alla svelta |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Allora la cosa comincia a prendere forma.
Con L'SQL strutturata così: Data1.RecordSource = ("select descrizione, sum(abs(qta)) as sommaqta,codArticolo from Fatture group by descrizione,codarticolo") FUNZIONA PERFETTAMENTE. Siccome però devo visualizzare anche il campo quantita utilizzando la sintassi seguente: Data1.RecordSource = ("select descrizione,qta sum(abs(qta)) as sommaqta,codArticolo from Fatture group by descrizione,codarticolo,qta") OPPURE Data1.RecordSource = ("select descrizione, sum(abs(qta)) as sommaqta,codArticolo,qta from Fatture group by descrizione,codarticolo,qta") Il risultato sballa ovvero non risulta più corretto ma inferiore a quanto dovrebbe essere. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
non ti serve gruppare anche per descrizione, e' sufficiente il codice
quindi solo group by codice avrei bisogno di sapere perche' vuoi mostrare anche la singola quantita', ci sono notevoli problemi di calcolo in quel modo (in pratica la quantita' che ti viene proposta e' SOLO quella dell'ultima occorrenza dell'articolo) |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Il fatto è chè se utilizzo questa sintassi
Data1.RecordSource = ("select descrizione, sum(abs(qta)) as sommaqta,codArticolo from Fatture group by descrizione") Non funziona perche mi dice che (CODARTICOLO) non fa parte dell'agregazione. Se invece scrivo così: Data1.RecordSource = ("select descrizione, sum(abs(qta)) as sommaqta,codArticolo from Fatture group by descrizione,CodArticolo") Funziona!!! La quantità che si deve visualizzare nella tabella dovrebbe essere la somma di tutti gli articoli avente codice identico. Es. Se mi trovo 5 articoli con codice 100 e qtà 1,2,3,4,5 Io vorrei visualizzare una sola riga che riporti: (il codice, la descrizione, e la somma delle qtà in questo caso 1+2+3+4+5 =15 quindi sulla DBGRID avrei: Cod. Articolo Descrizione qtà 100 Mele 15 etc.... |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
prova a fare cosi'
Data1.RecordSource = ("select codArticolo, descrizione, sum(abs(qta)) as sommaqta from Fatture group by codArticolo") considera che non utilizzo vb ma delphi per programmare, cmq sql e' sempre sql (salvo giochini m$ ![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Niente da fare non ne vuol sapere. Mi da sempre lo stesso errore: ovvero:
Impossibile eseguire una query che non include l'espressione "Descrizione" specificata come parte di una funzione di agregazione. .................Non ne posso pi ![]() |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
Quote:
in ogni caso, provando a mettere SOLO descrizione nella group by ? ripeto l'invito a raggiungermi su irc se vuoi una consulenza in realtime ! |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
schusa da dove ci devo andare per raggiungerti su irc???
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
beh... se non hai mai chattato in irc e' un po' piu' duretta...
cmq ti ci vuole il programma mIRC www.mirc.com entrare su un server qualsias... diciamo irc.tin.it o irc.edisontel.it poi entrare sul canale #rimini (il comando e' /join #rimini) cmq possiamo anche restare qua o se usi chat diverse dimmi pure |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
certo che come modo per passare il sabato sera e' perfetto
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
un po' complicato, se per tè non ti dispiace per stavolta rimaniamo quì se puoi aiutarmi. Comunque non vorrei alla fine però approfittarne troppo. Se non ti và più fa niente... ti posso capire...
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Chiamiamolo pure un diversivo
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
no no dicevo per te !!! io son tornato prima dal ristorante giapponese, la signora l'ho adagiata sul letto ed e' nel mondo dei sogni... e mi piace poter essere utile, speriamo solo di trovare la soluzione
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 367
|
Speriamo. Comunque grazie!!!!
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
hai provato a mettere solo "descrizione" nel group by ?
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:55.