Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

HELP SQL

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

HELP SQL

Messaggioda yeah782000 » lun lug 05, 2004 10:43 am

Ciao Ragazzi,
in un db access ho realizzato una query che mi faccia la somma di un certo campo (USCITE) solo quando il campo DATA e' compreso in un certo intervallo di tempo.... La query funziona ma il mio problema e' questo...
Ho bisogno di questa query per ogni mese dell'anno e per vari anni...
Vorrei pero' non creare 12 query per ogni anno.... altrimenti per un periodo di 10 anni dovrei fare 120 query !!!!!!
Esiste un modo per raggruppare piu' query iun un'unica query ??
Non so se mi son spiegato...
Grazie


Ciaooo
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda steso » lun lug 05, 2004 10:49 am

Se ti spieghi meglio con i compi delle tab ti provo ad aiutare
Avatar utente
steso
Aficionado
Aficionado
 
Messaggi: 41
Iscritto il: lun feb 02, 2004 11:45 am

Messaggioda yeah782000 » lun lug 05, 2004 12:13 pm

ciao steso...in pratica io ho questa tabella (tb_movimenti):
id_movimento
data_movimento_
entrate_
uscite_
descrizione_movimento

Vorrei fare la somma delle uscite per ogni mese... così da confrontare poi i vari mesi nel corso degli anni.
Ho fatto ad esempio questa query per il mese di Gennaio 2004:
SELECT Sum([USCITE]) AS TOTALE_USCITE_gennaio_2004
FROM tb_movimenti
WHERE (((tb_movimenti.DATA_MOVIMENTO) Between #1/1/2004# And #31/01/2004#));
Dovrei farne 12 mer avere un dettaglio di ogni mese... Pero' come ho detto prima per un periodo di 10 anni dovrei fare 120 query !
Sarebbe bello invece raggruppare ad esempio in una sola query il totale delle uscite per i mesi di gennaio (totale_uscite_200 , totale_uscite_2001, totale_uscite_2001...)...un'altra query per i mesi di febbraio e così via...
Spero di essermi spiegato meglio adesso....
Grazie per l'aiuto....

ciao
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am


Messaggioda Robby78 » ven lug 09, 2004 7:39 am

ciao yeah... prova a fare così:

SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'yyyy/MM')

dimmi come va...
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » ven lug 09, 2004 2:25 pm

grazie roby...
ho risolto così:

SELECT Sum(tb_movimenti.USCITE) AS TOTALE_USCITE, Year(tb_movimenti.DATA_MOVIMENTO) AS ANNO, Month(tb_movimenti.DATA_MOVIMENTO) AS MESE
FROM tb_movimenti
GROUP BY Year(tb_movimenti.DATA_MOVIMENTO), Month(tb_movimenti.DATA_MOVIMENTO)
ORDER BY Month(tb_movimenti.DATA_MOVIMENTO);


ciao
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » ven lug 09, 2004 2:46 pm

si, è circa la stessa cosa... è ovvio che al posto del police alla fonzie c'erano 3 y...

ciao
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » lun lug 12, 2004 7:47 am

ciao robby...
volevo dirti che funziona benissimo come mi hai detto tu !!!
anzi e' ancora meglio perche' in questo modo in un solo campo ho data e anno.....!
grazie 1000 !!!!


ciaociao
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda yeah782000 » lun lug 12, 2004 7:48 am

scusa...volevo dire che in un solo campo ho mese e anno !!!
ciao
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda yeah782000 » lun lug 12, 2004 9:50 am

ciao robby,
come creo una query come quella da te indicata ma solo quando il mese e' = gennaio ??

grazie
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » lun lug 12, 2004 9:57 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da yeah782000</i>
<br />ciao robby,
come creo una query come quella da te indicata ma solo quando il mese e' = gennaio ??

grazie
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

cioè vuoi vedere soltanto i gennai di tutti gli anni? se è così devi fare così:

SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
where month(tb_movimenti.DATA_MOVIMENTO)=1
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'yyyy/MM')

ciao
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » lun lug 12, 2004 10:42 am

sei proprio un grande [prego]!!!!!!!!!!!!!!!!
grazie 100000000000000000000 !!!!!!!!!!!!!!!!![^]

yuuuuuuuu !!!!!

yeahhhhhhh !

[^]
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » lun lug 12, 2004 10:58 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da yeah782000</i>
<br />sei proprio un grande [prego]!!!!!!!!!!!!!!!!
grazie 100000000000000000000 !!!!!!!!!!!!!!!!![^]

yuuuuuuuu !!!!!

yeahhhhhhh !

[^]
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

[:-H] ahah nn esagerare!! comunque grazie [^]
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » lun lug 12, 2004 12:21 pm

scusa robby...
non mi mandare a quel paese...!!!
un ultima cosa......
ho bisogno di una query come la precedente ma data_movimento deve essere compresa in un certo periodo ...tipo tra 01/01 e 31/04 ad esempio...
in pratica inveoltre a fare il dettaglio mese per mese vorrei farlo anche diviso per periodi .... ovviamente diviso per anni, come prima, in modo da analizzarne la differenze nel tempo....
grazie 1000 in anticipo !
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » lun lug 12, 2004 12:30 pm

SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
where (format(tb_movimenti.DATA_MOVIMENTO,'DD/MM/YYYY') >= '01/01/2004') AND
(format(tb_movimenti.DATA_MOVIMENTO,'DD/MM/YYYY') <= '31/04/2004')
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'yyyy/MM')

così?

cerca di essere un po + preciso nelle rikieste [sedia] [:D]
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » lun lug 12, 2004 1:08 pm

hai ragione.... scusa se sono stato poco chiaro....
in pratica grazie ai tuoi suggerimenti ho creato 12 query ...una per ogni mese dell'anno... In questo modo posso confrontare, ad esempio, nella query di gennaio, il totale delle uscite di gennaio 2003 con il totale delle uscite di gennaio 2004 e cosi' via...
Quello che ho tentato di spiegarti prima invece e' questo:
Vorrei fare una query che mi calcoli il totale delle uscite in ogni stagione dell'anno...
Dovro fare quindi una query che mi calcoli il totale delle uscite quando il campo data_movimento e' compreso tra dd/MM (inizio stagione) e dd/MM (fine stagione) senza pero' includere l'anno come nella query che mi hai suggerito nel precedente post perche' in quel caso viene preso in considerazione solo l'anno che inserisco nella query... io ho invece biogno di sommare, ad esempio, tutte le uscite che ho avuto nel periodo che rientra tra inizio e fine di tutte le primavere ...quindi lanciando la query dovrei avere questo:
totale_uscite primavera
€ 500 2003
€ 800 2004
€ 1200 2005

sero di essermi spiegato meglio adesso....
grazie roby

ciao ciao

PS: non mi abbandonare adesso ![:-H]
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » lun lug 12, 2004 1:28 pm

allora vediamo...

SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
where (format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') >= '01/01') AND
(format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') <= '31/04')
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'yyyy')

prova, in questa modo dovresti fare 4 query x avere tutte le stagioni
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » lun lug 12, 2004 1:42 pm

Non sei grande.... sei grandissimo !!!!!!
grazie 1000..... !!!!!!!!!!!!!!!!!!!!!!!!!!!


[applauso][applauso][applauso][applauso][applauso]
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda yeah782000 » ven lug 30, 2004 10:51 am

cio robby ...ricordi questa query che gentilmente mi hai suggerito :
SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
where (format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') >= '01/01') AND
(format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') <= '31/04')
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'y')
ecco non funziona piu' !!!! nel senso che quando lancio la query anziche' calcolare il totale delle uscite nel periodo indicato mi fa un calcolo totale...in pratica e' come se il filtro della data non ci fosse... mi fa la somma di tutte le uscite e basta...
mi aiuti per favore?
[prego]
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda Robby78 » ven lug 30, 2004 11:04 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da yeah782000</i>
<br />cio robby ...ricordi questa query che gentilmente mi hai suggerito :
SELECT Sum([USCITE]) AS TOTALE_USCITE
FROM tb_movimenti
where (format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') >= '01/01') AND
(format(tb_movimenti.DATA_MOVIMENTO,'DD/MM') <= '31/04')
GROUP BY format(tb_movimenti.DATA_MOVIMENTO,'y')
ecco non funziona piu' !!!! nel senso che quando lancio la query anziche' calcolare il totale delle uscite nel periodo indicato mi fa un calcolo totale...in pratica e' come se il filtro della data non ci fosse... mi fa la somma di tutte le uscite e basta...
mi aiuti per favore?
[prego]
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

ehilà! guarda che nn è possibile, forse il problema è che nel group by ti sei dimenticato una y, prova a mettercene 2, nn so come si comporta con solo una y
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda yeah782000 » ven lug 30, 2004 7:20 pm

la sintassi e' giusta....
SELECT Sum(tb_movimenti.USCITE) AS TOTALE_USCITE, Format([tb_movimenti].[DATA_MOVIMENTO],'yyyy') AS test
FROM tb_movimenti
WHERE (((Format([tb_movimenti].[DATA_MOVIMENTO],'dd/mm'))>='01/01' And (Format([tb_movimenti].[DATA_MOVIMENTO],'dd/mm'))<='31/04'))
GROUP BY Format([tb_movimenti].[DATA_MOVIMENTO],'yyyy');

pero' non funziona ![cry+]
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising