Jak użyć GROUP BY z pominięciem jednej kolumny

0

Witam.

Zakręciłem się przy jednym zapytaniu....

Mam taki przykładowy zestaw danych :
Nazwa | CenaPodstawowa | CenaRabat | Typ
xxx | 1,18 | 0,6726 | 2
xxx | 1,18 | 0,885 | 1
xxx | 1,18 | 0,9676 | 0

Po odpytaniu chciałbym uzyskać coś takiego :
Nazwa | CenaPodstawowa | CenaRabat | Typ
xxx | 1,18 | 0,6726 | 2

Gdyby nie Typ użyłbym

SELECT Nazwa, CenaPodstawowa, MIN(CenaRabat)
FROM Table
GROUP BY  Nazwa, CenaPodstawowa

jednak zależy mi na tym aby została informacja z kolumny Typ, kombinowałem z HAVING ale coś takiego:

SELECT Nazwa, CenaPodstawowa, CenaRabat, Typ
FROM Table
GROUP BY  Nazwa, CenaPodstawowa, CenaRabat, Typ
HAVING CenaRabat=MIN(CenaRabat)

nie działa prawidłowo (zwraca to samo co było na wejściu (nie wybiera rekordu w najmniejszą wartością w CenaRabat)

Jak powinno wyglądać to zapytanie ?

0
SELECT TOP 1 Nazwa, CenaPodstawowa, CenaRabat, Typ
FROM Table
ORDER BY CenaRabat

?

1
SELECT * FROM table JOIN (SELECT Nazwa, CenaPodstawowa, MIN(CenaRabat) CenaRabat FROM TABLE GROUP BY  Nazwa, CenaPodstawowa) x ON x.Nazwa=table.Nazwa AND x.CenaPodstawowa=table.CenaPodstawowa AND x.CenaRabat=table.CenaRabat
0

@Marcin.Miga Próbuję wykorzystać to co napisałeś, ale w wersji zJOIN'ami i filtrowaniem i sobie nie radzę...
Możesz mi powiedzieć jak powinno wyglądać takie zapytanie:

SELECT Nazwa, CenaPodstawowa, MIN(CenaRabat), Typ, AT.Foo
FROM TABLE
LEFT JOIN ADDTABLE AT ON TABLE.Id = AT.Id
WHERE Nazwa LIKE '%TEST%'
GROUP BY  Nazwa, CenaPodstawowa

tak aby działało jak to zapytanie które pokazałeś (tzn gdzie powinny znaleźć się złączenia i warunki?)?

Niby sobie poradziłem ale powielając JOIN'y (podstawowe zapytanie ma ich kilka) i nie jestem pewny czy tak to powinno być...

0
SELECT t.Nazwa, t.CenaPodstawowa, t.CenaRabat, t.Typ, AT.Foo FROM TABLE t LEFT JOIN ADDTABLE AT ON (TABLE.Id = AT.Id) inner JOIN (SELECT Nazwa, CenaPodstawowa, MIN(CenaRabat) CenaRabat FROM TABLE WHERE Nazwa LIKE '%TEST%' GROUP BY Nazwa, CenaPodstawowa) x ON (x.Nazwa=T.Nazwa AND x.CenaPodstawowa=T.CenaPodstawowa AND x.CenaRabat=T.CenaRabat) 

1 użytkowników online, w tym zalogowanych: 0, gości: 1