Query: doppio raggruppamento

di il
3 risposte

Query: doppio raggruppamento

Ciao a tutti, mi sono affacciato al mondo SQL da poco e non riesco a venire a capo di un problema di raggruppamento per date, come da desiderata riportato qui sotto.
In particolare, vorrei capire come fare per raggruppare gli acquisti e le vendite con data "pre maggio 2020".
Non badate ad eventuali errori nella query che vi riporto di seguito, quello che mi interessa è capire come impostare il raggruppamento.
Riporto nell'ordine: es. tabella, risultato ottenuto, risultato desiderato e query attuale:

TABELLA
Venditore	Acquisti	Vendite		Data
ROSSI		10				10/10/2020
CAPUTO		15				14/12/2020
LOSACCO		12				16/12/2020
ROGLIERI			30		13/01/2021
ROSSI				20		14/01/2021
…		..		..		..	
Totale		445		85

OUTPUT							DESIDERATA
Mese/Anno	Acquisti	Vendite			Mese/Anno	Acquisti	Vendite
gen-20		208		2			Pre Mag_2020	308		5
feb-20		100		3			giu-20		117		3
giu-20		117		3			lug-20		110		2
lug-20		110		2			set-20		90		75
set-20		90		75			Totale		445		85
Totale		445		85
SELECT
COALESCE (DATE_FORMAT(tabella.data,"%M %Y"),'Totale') as MeseAnno,
SUM tabella. vendite as Vendite,
SUM tabella. acquisrti as Acquisti
FROM
Tabella
GROUP BY
DATE_FORMAT(tabella.data,"%M %Y")
ORDER BY
tabella.data

Grazie

3 Risposte

  • Re: Query: doppio raggruppamento

    Ciao,
    se ho ben capito basta usare un'istruzione condizionale (IF o anche CASE)
    per distinguere tra pre e post maggio 2020

    https://www.w3schools.com/sql/func_mysql_if.as

    Per tutte le date pre ti fai restituire 'Pre Maggio 2020'
    e per le altre mese-anno
  • Re: Query: doppio raggruppamento

    Ciao, la mia difficoltà risiede nell'inserimento dell'istruzione condizionale per raggruppare le date precedenti maggio 2020, lasciando il raggruppamento per mesi su quelle successive.
    Grazie
  • Re: Query: doppio raggruppamento

    Provato ad usare union? select (condizioni tabella a) union Select(condizioni tabella a)...
Devi accedere o registrarti per scrivere nel forum
3 risposte