Originariamente inviata da
optime
optime!
Originariamente inviata da
optime
optime!
Buongiorno, mi sono reso conto di una cosa, la query fondamentalmente fa quello che gli viene richiesto ma non soddisfa le mie esigenze
mi seleziona, si gli interventi 5 mesi a ritroso, ma controllando ho verificato che gli interventi estratti hanno effettuato interventi anche in date successive, pertanto l'estrazione non è veritiera.
Per portare un esempio, se eseguo la query, mi estrae il cliente Pippo che ha eseguito un intervento 5 mesi fa, ma se lo stesso cliente, con lo stesso seriale avesse eseguito anche un intervento in un periodo più recente me lo andrebbe a scartare, ed io mi ritroverei con i dati sballati.
In sostanza a me servirebbe individuare solo quei clienti che hanno eseguito l'ultimo intervento 5 mesi fa e non in data successive e che naturalmente cosa che già fa la query hanno un numero di interventi totali >= a 6, giusto per andare ad escludere quei clienti che hanno eseguito pochi interventi.
Avevo letto della possibilità di aggregare una SELECT con una funzione "NOT IN", ma non riesco a farlo
avrei voluto implementare una cosa del genere
codice:
SELECT cliente,marca,modello,seriale,
DATE_FORMAT(data,'%d/%m/%Y') AS 'Data ultimo intervento', COUNT(*) AS 'Numero Interventi',
SUM(totale) AS Incasso, COUNT(*) AS 'Interventi gestiti'
FROM tabella
WHERE data <= NOW() -INTERVAL 5 month GROUP by seriale HAVING COUNT(*) >=5
ORDER BY data DESC
... WHERE data <= NOW() -INTERVAL 5 month GROUP by seriale HAVING COUNT(*) >=5
ORDER BY data DESC
and seriale NOT IN (SELECT DISTINCT ..... FROM tabella)
[CODE]
Mi sono incastrato