Wpis z mikrobloga

Siemaneczko, sqlowe świry.

Załóżmy, że mam tabelę pracownicy z 3 kolumnami id_pracownika, id_dzialu oraz pensja
Ma ktoś pomysł dlaczego zapytanie

select id_pracownika,id_dzialu,pensja,
(select min(pracownicy.pensja) from pracownicy p where id_dzialu = pracownicy.id_dzialu)
from pracownicy;

Działa w Oracle ale w SQL Server już nie?

#sql #oracle #sqlserver
  • 9
@kaczoki:

Ja bym stworzył tabele tymczasową i tam to #!$%@?ł. Albo zwykły join


Nie pytałem co ktoś zrobiłby zamiast, bo to jest akurat oczywiste.
Moje pytanie jest konkretne, a zdziwiony jestem zachowaniem SQL Servera, bo akurat Oracle zrobił to, czego się spodziewałem.
@aardwolf: a spróbuj tak:

select pracownicy.id_pracownika,pracownicy.id_dzialu,pracownicy.pensja,
(select min(pracownicy.pensja) from pracownicy p where id_dzialu = pracownicy.id_dzialu)
from pracownicy;

No i dlaczego porównujesz id_działu z id_działu?
Czy pracownicy i pracownicy p to 2 różne tabele? Jeśli tak to drugą zapisz tak [pracownicy p]