Hallo zusammen,
grundsätzlich habe ich 2 Lösungen für den Weg - es geht darum, dass ich die Anzahl der Kunden in einem Monat brauche, deren Email (ja nicht astrein, mir bewusst, aber aufgrund der Datenbank Modellierung nicht anders möglich) vorher nicht in der Tabelle auftaucht.
Mein Problem ist eigentlich, dass mir die Datenbank bei beiden Abfragen immer ins Timeout geht.
Erster Ansatz:
select count(email)
from
(select email from x.tOrder where Created_At > "2017-01-01 00:00:00" and Created_At < "2017-01-31 23:59:59"and email not in (select email from x.tOrder where Created_At < "2016-12-31 00:00:00")
group by email
having count(email) = 1) t
Zweiter Ansatz
select monthOrders.email from
(
/* orders */
select email from x.tOrder
where Created_At > "2017-01-01 00:00:00" and Created_At < "2017-01-31 23:59:59"
) monthOrders
left join
(
/* old orders */
select email from x.tOrder
where Created_At < "2016-12-31 23:59:59" and AxaptaId != "PAYMENT_PENDING"
) beforeOrders
on monthOrders.email=beforeOrders.email
where beforeOrders.email is null
Jemand eine stabilere / schnellere Idee für mich?