Il linguaggio di programmazione Delphi
 

[OT] SQL

Daniele 15 Giu 2017 15:09
Ciao a tutti,
un po OT ... scusate ...
Nella tabella ho un campo (FLAG) che puo' avere 5 settaggi da 0 a 4.
Per ogni valore devo eseguire una somma e oggi utilizzo

select sum(Prezzo) as TotPrezzo from Tabella where Flag=0

e la eseguo 5 volte per avere i 5 prezzi totali che servono.

C'e' la possibilita' di fare tutto in un'unica interrogazione?

Grazie

Daniele
enrico.giudici@gmail.com 15 Giu 2017 16:22
Ciao Daniele,

> Nella tabella ho un campo (FLAG) che puo' avere 5 settaggi da 0 a 4.
> Per ogni valore devo eseguire una somma e oggi utilizzo
>
> select sum(Prezzo) as TotPrezzo from Tabella where Flag=0
>
> e la eseguo 5 volte per avere i 5 prezzi totali che servono.
>
> C'e' la possibilita' di fare tutto in un'unica interrogazione?

se il database che utilizzi supporta il CASE potresti utilizzare quello.

https://msdn.microsoft.com/it-it/library/ms181765.aspx

Ciao da Enrico c/o Anthelios
Stark 15 Giu 2017 19:24
ha scritto nel messaggio
news:7fd51564-e506-49c2-9623-78d17e6e8d91@googlegroups.com...

Ciao Daniele,

> Nella tabella ho un campo (FLAG) che puo' avere 5 settaggi da 0 a 4.
> Per ogni valore devo eseguire una somma e oggi utilizzo
>
> select sum(Prezzo) as TotPrezzo from Tabella where Flag=0
>
> e la eseguo 5 volte per avere i 5 prezzi totali che servono.
>
> C'e' la possibilita' di fare tutto in un'unica interrogazione?

se il database che utilizzi supporta il CASE potresti utilizzare quello.

https://msdn.microsoft.com/it-it/library/ms181765.aspx

Ciao da Enrico c/o Anthelios

Oppure, usa Union all


---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
4ndre4 16 Giu 2017 13:39
On Thursday, 15 June 2017 18:24:54 UTC+1, Stark wrote:

[...]
> Oppure, usa Union all

UNION ALL non rappresenta un'unica interrogazione.
4ndre4 16 Giu 2017 13:41
On Thursday, 15 June 2017 14:10:00 UTC+1, Daniele wrote:

[...]
> C'e' la possibilita' di fare tutto in un'unica interrogazione?

L'unico modo per farlo e`, come ti diceva Enrico, usare un CASE o *****ogo sul
tuo db. Io pero` suggerirei, se i record non sono tanti, di fare una query
unica, scorrere e sommare in memoria. E` probabilmente piu` efficiente ed evita
di sovraccaricare inutilmente il tuo statement SQL.
alessandrob 17 Giu 2017 06:19
Prova con

Select flag, sum(valore) ad valore from tabella
group by flag
Stark 18 Giu 2017 00:14
"Daniele" ha scritto nel messaggio news:ohu0v6$ml5$1@gioia.aioe.org...

Ciao a tutti,
un po OT ... scusate ...
Nella tabella ho un campo (FLAG) che puo' avere 5 settaggi da 0 a 4.
Per ogni valore devo eseguire una somma e oggi utilizzo

select sum(Prezzo) as TotPrezzo from Tabella where Flag=0

la eseguo 5 volte per avere i 5 prezzi totali che servono.

C'e' la possibilita' di fare tutto in un'unica interrogazione?
Grazie
Daniele

select sum(Prezzo) as TotPrezzo from Tabella where Flag=0 union all
select sum(Prezzo) as TotPrezzo from Tabella where Flag=1 ....

E' vero, non è un'unica interrogazione, ma la esegui in un botto solo..
Non è questo che cerchi ?
4ndre4 18 Giu 2017 09:04
On Saturday, 17 June 2017 23:14:08 UTC+1, Stark wrote:

[...]
> E' vero, non è un'unica interrogazione, ma la esegui in un botto solo..
> Non è questo che cerchi ?

Ma perche` insistere con questa soluzione subottimale quando altri hanno
suggerito vie migliori?
Stark 18 Giu 2017 11:34
"4ndre4" ha scritto nel messaggio
news:39ea6f3e-9926-4f0c-a1ab-46264c3f003f@googlegroups.com...

On Saturday, 17 June 2017 23:14:08 UTC+1, Stark wrote:

[...]
> E' vero, non è un'unica interrogazione, ma la esegui in un botto solo..
> Non è questo che cerchi ?

Ma perche` insistere con questa soluzione subottimale quando altri hanno
suggerito vie migliori?

Lo so che è migliore, ma per esempio il local Sql il case non ce l'ha
4ndre4 18 Giu 2017 11:49
On Sunday, 18 June 2017 10:34:29 UTC+1, Stark wrote:

[...]
> Lo so che è migliore, ma per esempio il local Sql il case non ce l'ha

Non mi riferivo al case. Leggili tutti i messaggi.
... 19 Giu 2017 18:25
On Thu, 15 Jun 2017 15:09:57 +0200, "Daniele" <io@io.it> wrote:

>Ciao a tutti,
> un po OT ... scusate ...
>Nella tabella ho un campo (FLAG) che puo' avere 5 settaggi da 0 a 4.
>Per ogni valore devo eseguire una somma e oggi utilizzo
>
>select sum(Prezzo) as TotPrezzo from Tabella where Flag=0
>
>e la eseguo 5 volte per avere i 5 prezzi totali che servono.
>
>C'e' la possibilita' di fare tutto in un'unica interrogazione?
>
>Grazie
>
>Daniele

Ma c'è un index su FLAG ?

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.