2017-12-07 3 views
0

Ich versuche zu zeigen, welche Produkte unser Unternehmen zu einem bestimmten Zeitpunkt erworben hat. Ich möchte den Namen jedes Produkts und dann ein einfaches Y oder N neben jedem Produkt anzeigen, das angibt, ob es zu einem bestimmten Datum verkauft wurde. Ich bin mir nicht sicher, wie die Abfrage zu strukturieren - das ist mein VersuchRückgabespalte basierend auf einem anderen spezifischen Wert

SELECT product_offering as Product 
CASE WHEN date_key='2017-03-30' THEN product_sold ELSE product_sold END as Sold 
FROM table1 

Es soll wie folgt aussehen, wenn sie, wie ein verkürztes Beispiel

erstes Produkt 2017-03-27

2. verkauft Produkt verkauft 2017-04-03

3. Produkt 2017.03.28 verkauft

|Product | Sold | 
|1st Prod| Y | 
|2nd Prod| N | 
|3rd Prod| Y | 

Stattdessen wird die " Verkauft "Spalte ist nicht ganz korrekt. Ich denke, das hat etwas damit zu tun, dass das Datum einem bestimmten Datum entspricht, anstatt einer Reichweite, aber ich bin mir nicht sicher, wie ich das beheben soll.

+0

Bearbeiten Sie Ihre Frage und zeigen Sie Beispieldaten oder das Datenlayout. –

Antwort

0

Wenn ich richtig verstehe, wollen Sie etwas wie folgt aus:

SELECT product_offering as Product, 
     (CASE WHEN MIN(date_key) <= '2017-03-30' THEN 'Y' ELSE 'N' END) as Sold 
FROM table1 
GROUP BY table1 
0

Sie können die folgende Abfrage verwenden, um dies zu erreichen:

Select product,(case when min(date_key)<='2017-03- 
30' then 'y' else 'n' end) as sold from table1 group by product 
0

Wenn ich verstehe Ihr Problem richtig, dh Sie müssen vergleichen Spalte date_key zu einem date value (was in Ihrem Beispiel ist 2017-03-30) und wenn es weniger ist, dann zurück Y sonst N. In diesem Fall denke ich nicht, dass Aggregation benötigt wird.

Sie brauchen nur case.

select product_offering as Product, 
     case when date_key <= DATE '2017-03-30' then 'Y' else 'N' end as Sold 
from table1 
order by product_offering 

<= oder < in obiger Abfrage je nachdem, ob Sie date value oder nicht enthalten sein sollen.

Ergebnis:

+-------------+------+ 
| PRODUCT | SOLD | 
+-------------+------+ 
| 1st product | Y | 
| 2nd product | N | 
| 3rd product | Y | 
+-------------+------+ 

DEMO

P. S. Die obige Demo gilt auch für teradata (und wurde bereits getestet)

Verwandte Themen