Zum Inhalt springen

Eine neue Spalte meiner Abfrage hinzufügen


Cr4m0

Empfohlene Beiträge

Hi,

folgendes Problem:

ich habe drei Tabellen die ich über die Kundennummer Joine. Soweit so gut. So sieht meine Abfrage aus:

SELECT DISTINCT cml.uniquecustomerid,

FROM dwh.cust_mailing_list cml,

dwh.sales s,

dwh.cust_prod_notify cpn

WHERE cml.customerid = s.customerid

AND cml.customerid = cpn.customerid

AND s.productid = '1'

AND s.siteid = '2';

nun würde ich gern meiner abfrage eine neue spalte hinzufügen die abhängig von werten aus der Tabelle dwh.cust_prod_notify ist. In der cust_prod_notify gibt es eine spalte die Werte von 0 bis 3 enhält. Nun möchte ich das in der neuen spalte für jeden Kunden eine neue Bezeichnung für diese Werte zwischen 0-3. Wenn 0 dann A, wenn 1 dann B, wenn 2 dann C und wenn 3 dann D.

Wie baue ich das in meine Abfrage?

Vielen Dank.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

dank deiner Hilfe habe ich nun folgendes Statement gebastelt:

SELECTDISTINCT c.customerid,

c.reg_dayid AS Reg_day,

( CASE

WHEN cpn.jackpot_alert > 0 and cml.standard_newsletter > 0 THEN 'C'

WHEN cpn.jackpot_alert = 0 and cml.standard_newsletter > 0 THEN 'B'

WHEN cml.standard_newsletter = 0 and cpn.jackpot_alert > 0 THEN 'A'

ELSE''END ) AS Flag

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'

ORDERBY 1;

Das Ergebnis ist eine Tabelle mit allen CustomerId's die jeweils in Gruppen A, B oder C aufgeteilt wurden. Wie kann ich diese denn nun zählen? Ich möchte also wissen wieviele Customer in Gruppe A, b sowie C sind.

Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

So solltest du die Aufteilung auf die verschiedenen Kategorien bekommen, allerdings als zusätzliche Abfrage und nicht in die erste integriert:

SELECT DISTINCT CASE

    WHEN cpn.jackpot_alert > 0 and cml.standard_newsletter > 0 THEN 'C'

    WHEN cpn.jackpot_alert = 0 and cml.standard_newsletter > 0 THEN 'B'

    WHEN cml.standard_newsletter = 0 and cpn.jackpot_alert > 0 THEN 'A'

    ELSE ''

END AS Flag

,CASE

    WHEN cpn.jackpot_alert > 0 and cml.standard_newsletter > 0 THEN (SELECT COUNT(*) FROM ... WHERE cpn.jackpot_alert > 0 AND cml.standard_newsletter > 0)

    WHEN cpn.jackpot_alert = 0 and cml.standard_newsletter > 0 THEN (SELECT COUNT(*) FROM ... WHERE cpn.jackpot_alert = 0 and cml.standard_newsletter > 0)

    WHEN cml.standard_newsletter = 0 and cpn.jackpot_alert > 0 THEN (SELECT COUNT(*) FROM ... WHERE cml.standard_newsletter = 0 and cpn.jackpot_alert > 0)

    ELSE (SELECT COUNT(*) FROM ... WHERE [I]!= CASE 1-3[/I])

END AS Anzahl

FROM ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...