2016-03-22 10 views
1

Ich habe folgende grundlegende Abfrage, die ich gezwickt brauchen:Mehrere wählt in einer Abfrage

SELECT PRODUCT_KEY, 
     PRODUCT_DESCRIPTION, 
     USC_CODE, 
     USC_DESCRIPTION 
FROM ADMIN.PRODUCT_DIM 
WHERE COUNTRY_CODE = 'US' 
    AND usc_code IS NOT NULL 
GROUP BY PRODUCT_KEY, 
     PRODUCT_DESCRIPTION, 
     USC_CODE, 
     USC_DESCRIPTION 
ORDER BY PRODUCT_KEY 

Was ich nur eine der select Felder zur Liste müssen, wenn die gibt es 1 oder keine product_keys innerhalb usc_code.

Also wenn usc 12345 null oder nur 1 Produkt hat, möchte ich sehen, dass usc, Produkt, desc, usw. daraus.

Also ich denke, ich brauche eine andere Auswahl in der Mitte irgendwo, aber nicht sicher, wo.

Hier einige Daten Beispiel:

PRODUCT_KEY PRODUCT_DESCRIPTION  USC_CODE USC_DESCRIPTION 
1000376001 B COMPLEX/C   76222 B-COMPLEX,W/C,ORAL 
1000610001 OXYMETAZOLINE HCL 14200 DECONGESTANTS ALONE 
1000611001 OXYMETAZOLINE HCL 14200 DECONGESTANTS ALONE 
1000612001 OXYMETAZOLINE HCL 14200 DECONGESTANTS ALONE 
1000613001 OXYMETAZOLINE HCL 14200 DECONGESTANTS ALONE 
1000614001 OXYMETAZOLINE HCL 14200 DECONGESTANTS ALONE 
1000615001 OXYMETAZOLINE HCL 78120 CRUDE/BULK MED 
+0

bitte einige Beispieldaten und das erwartete Ergebnis zeigen. –

+0

Prüfen mit count (*) Klausel ... Wenn ich Ihr Problem richtig verstanden habe, das ist die Klausel, die Sie brauchen – Veljko89

+0

Welche DBMS verwenden Sie? –

Antwort

0
SELECT PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION, COUNT(*) 
FROM ADMIN.PRODUCT_DIM 
WHERE COUNTRY_CODE = 'US' 
    AND usc_code is not null 
GROUP BY PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION 
HAVING COUNT(*) = 0 OR COUNT(*) = 1 
ORDER BY PRODUCT_KEY 
+1

Auch bei diesem Code ist ein Fehler aufgetreten. Scheint, dass es in diesem Teil des Codes nicht gefällt oder nicht mag. – Jay

+0

dang! Ich vermassle immer die Reihenfolge von GROUP, HAVING und ORDER BY .. Ich habe es diesmal überprüft – Barry

0

Versuchen Sie dieses

SELECT PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION 

FROM ADMIN.PRODUCT_DIM 

WHERE COUNTRY_CODE = 'US' 
and usc_code is not null 

Group By PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION 
HAVING COUNT (PRODUCT_KEY) <2 
Order by PRODUCT_KEY 
+0

Es mag nicht "haben". Get errors.Error: FEHLER: 'PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION AUS ADMIN.PRODUCT_DIM WÄHLEN WHERE COUNTRY_CODE =' US 'und usc_code ist nicht null Gruppe nach PRODUCT_KEY, PRODUCT_DESCRIPTION, USC_CODE, USC_DESCRIPTION Ordnen nach PRODUCT_KEY MIT COUNT (PRODUCT_KEY) <2 ' Fehler (State: HY000, Native Code: 6C) – Jay

+0

@Jay HAVING muss vor ORDER BY gehen, aber in diesem Fall wird es nichts nützliches tun, da Sie bereits gruppieren von PRODUCT_KEY, so gibt es nur eine pro Gruppe zu Anzahl. –

+0

Danke. Das HAVEN funktioniert jetzt. Ich glaube, das gibt mir, was ich brauche, wenn ich product_id anstelle von product_key verwende, weil in meinem Fall product_id die ersten 7 Zeichen des 10-byte product_key sind. So sehe ich Zählungen von mehr als 1, wenn ich HAVING nicht verwende. – Jay

Verwandte Themen