2015-05-22 16 views
5

Ich brauche eine SQL Datenbank abzufragen alle unterschiedlichen Werte einer Spalte zu finden, und ich brauche einen beliebigen Wert von weiteren zwei Spalten. Betrachten wir zum Beispiel die folgende Tabelle mit drei Spalten: CurrencyCode, BuyRate und SellRate:mit mehreren Spalten nur eine eindeutige Spalte in SQL

CurrencyCode BuyRate SellRate 
AUD   1.037 1.97 
AUD   1.079 1.99 
EUR   0.7288 0.8763 
EUR   0.731 0.88 
GBP   0.59  0.72 

Ich wünsche eine Zeile mit deutlichen CurrencyCode abzurufen, vielleicht diese drei Reihen bekommen:

CurrencyCode BuyRate SellRate 
AUD   1.037 1.97 
EUR   0.7288 0.8763 
GBP   0.59  0.72 

Ich versuchte, meine SQL Abfrage wie:

SELECT distinct CurrencyCode, BuyRate, SellRate FROM Currencies 

Aber ich bin nicht immer das gewünschte Ergebnis als Es teilt alle Spalten auf.

+0

Welche dbms Produkt verwenden Sie? – jarlh

+0

Ich benutze MSSQL –

Antwort

6

Versuchen mit GROUP BY Klausel und MIN Funktion wie unten

SELECT CurrencyCode, MIN(BuyRate), MIN(SellRate) 
FROM Currencies 
GROUP BY CurrencyCode 
+0

Danke, es hat funktioniert. –

+0

@SabyasachiMishra Ich bin froh, dass ich helfen konnte – Parado

2

Bis jetzt fand ich dies die beste Antwort ist Min(SellRate) auf der Basis von Min(BuyRate)

zB zu bekommen.

CurrencyCode BuyRate SellRate 
     AUD   1.037  1.97 
     AUD   1.079  1.89 //Changed from 1.99 to 1.89 
     AUD   1.038  1.77 //New row added 
     EUR   0.7288 0.8763 
     EUR   0.731  0.88 
     GBP   0.59  0.72 

Hier erwarte ich AUD Zeilen für BuyRate und SaleRate wird 1.037 und 1.97

select CurrencyCode, Min(BuyRate) as BuyRate, 
(select top 1 SellRate from Currencies as C 
where C.CurrencyCode=Currencies.CurrencyCode 
and 
C.BuyRate= Min(Currencies.BuyRate) order by SellRate) as SellRate 
from Currencies 
group 
by CurrencyCode 
Verwandte Themen