Eine neue Spalte meiner Abfrage hinzufügen

Ja mit left(spalte,6) nimmst du einfach von der Zeichenkette die hier das Datum darstellt Jahr und Monat und gruppierst danach.

Um alles in das von dir gewünschte Format zu kriegen müsstest du aus deiner einen CASE Schleife mehrere machen:
Code:
SELECT    t.Reg_day,
        sum(t.FlagA) AS 'A',
        sum(t.FlagB) AS 'B',
        sum(t.FlagC) AS 'C',
        count(t.customerid) AS Anzahl
FROM    (
SELECT    DISTINCT
        c.customerid,
        left(c.reg_dayid,6) AS Reg_day,
( CASE
WHEN cml.standard_newsletter = 0 and cpn.jackpot_alert > 0 THEN 1
ELSE 0 END ) AS FlagA,
( CASE
WHEN cpn.jackpot_alert = 0 and cml.standard_newsletter > 0 THEN 1
ELSE 0 END ) AS FlagB,
( CASE
WHEN cpn.jackpot_alert > 0 and cml.standard_newsletter > 0 THEN 1
ELSE 0 END ) AS FlagC
FROM dwh.cust_mailing_list cml,
dwh.sales s,
dwh.cust_prod_notify cpn,
dwh.customer c
WHERE cml.customerid = s.customerid
AND cml.customerid = cpn.customerid
AND cml.customerid = c.customerid
AND cpn.productid = '1'
AND s.productid = '1'
AND s.siteid = '2'
AND s.paid = '1'
AND s.cancelled = '0'
AND s.purchasedayid >= '20121201'
AND c.reg_dayid >= '20121201'
) t
GROUP BY t.Reg_day
ORDER BY 1;
Ich verliere allerdings etwas den Faden weil ich keinen Schimmer habe ob die Anzahl noch passt, kenne jetzt deine Daten nicht so gut wie du ;) Aber so kann es funktionieren.
 
Werbung:
Werbung:
Zurück
Oben