|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySql]creazione view
Ciao a tutti
Mi servirebbe un aiuto per creare una view. In particolare, ciò che concettualmente mi servirebbe tirare fuori è una cosa tipo: Codice:
CREATE VIEW dettagli AS SELECT tabella.ID_Persona as ID_Persona, tabella.Indirizzo as Indirizzo, //qui viene il problema count(campo) where campo = 'valore' as campo <--- ?come faccio qui? 1) ha solo valori 0 e 1, quindi per questo risolvo facendo: sum(campo) as campo; 2) Ha valori: 25, 28, 30, 50 e in questo caso devo fare il count di quanti sono 25, quanti 28, quanti 30 e quanti 50. 3) Ha valori: O, F, FN e devo fare il count di quanti O, quanti F e quanti FN Grazie mille RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
risolto ... bastava un 'banale'
Codice:
select pippo as pippo, (select count(campo) from tabella where valore = valore) as campo from tabella blablabla
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
scusatemi, invece non bastava nessun banale select
allora, la query è questa: Codice:
create view dipendentiDettaglio as select orebeta.ID_Mese as ID_Mese, orebeta.ID_Dipendente as ID_Dipendente, orebeta.cantiere as cantiere, orebeta.cantiereSede as cantiereSede, orebeta.servizio as servizio, (select(sum(format(time_to_sec(totale) / 3600, 2 ))) from orebeta where tOrd = '1') as totaleOrdinarie, (select(sum(format(time_to_sec(totale) / 3600, 2))) from orebeta where maggiorazione = '25') as mag1, sum(format(time_to_sec(totale) / 3600, 2)) as totaleOre, sum(dailyMoneyTotal) as paga from orebeta group by orebeta.ID_Mese, orebeta.ID_Dipendente, orebeta.cantiere, orebeta.cantiereSede, orebeta.servizio Se ne metto due, nei totali mi fa i totali di entrambi. Dove sbaglio? Grazie. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 1999
Messaggi: 1565
|
L'errore dovrebbe essere nelle due SELECT..SUM annidate che usi per il calcolo delle somme, queste si comportano indipendentemente dalle condizioni WHERE impostate per l'interrogazione e forniscono sempre i totali complessivi della tabella.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 1999
Messaggi: 1565
|
Forse (dico forse) così:
Codice:
create view dipendentiDettaglio as select orebeta.ID_Mese as ID_Mese, orebeta.ID_Dipendente as ID_Dipendente, orebeta.cantiere as cantiere, orebeta.cantiereSede as cantiereSede, orebeta.servizio as servizio, sum(if (tOrd = '1'; ((format(time_to_sec(totale) / 3600, 2 )));0)) as totaleOrdinarie, sum(if (maggiorazione = '25'; ((format(time_to_sec(totale) / 3600, 2)));0)) as mag1, sum(format(time_to_sec(totale) / 3600, 2)) as totaleOre, sum(dailyMoneyTotal) as paga from orebeta group by orebeta.ID_Mese, orebeta.ID_Dipendente, orebeta.cantiere, orebeta.cantiereSede, orebeta.servizio |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
grazie mille per la risposta
Provo subito e ti faccio sapere. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ti ringrazio infinitamente
La tua soluzione mi da i risultati corretti !! Grazie mille! RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:58.


















