jak wyswietlić zestawienie osob które maja przydzielona prace

0

Witam mam pytanko mam dwie tabele 1. Pracownicy w niej ( pracownikID nazwisko miasto departament ) w drugiej tabeli 2. Czas_zadania i w niej ( Kod_projec , Pracownik_id , Data_zadania ) i teraz chce żeby wyświetlili się wszyscy pracownicy którzy maja project i którzy jeszcze nie
maja project . Utknąłem na tym ze nie wiem jak zrobić żeby pokazało tych co nie maja projektu

Select pracownikID , nazwisko , Kod_projec ,Data_zadania
from Pracownicy , Czas_zadania
where pracownik.pracownikID = Czas_zadania.pracownikID
;

Prosze czy moze mi ktoś powiedzieć co trzeba dopisać

1

Cześć,
-Data_Zadania to data rozpoczęcia zadania, tak?

Czyli chcesz wziąć tych pracowników z tabeli Czas_Zadania gdzie data_zadania <= obecna data(czyli Ci którzy już mają zadanie w obrębie projektu) i tych gdzie data_zadania>obecnej dacie(Ci którzy mają zadanie w obrębie projektu przypisane ale jeszcze nie zaczęli, tak) ? Niejasno się wyraziłeś, dlatego pytam.

Pozdrawiam ;-)

0

Tak data_zadania to data rozpoczęcia projektu . Ale są pracownicy którzy jeszcze nie mieli przypisanego Projektu . I oni nie figurują w tabeli Czas_zadania.I teraz chce żeby pokazało mi pracowników którzy mieli projekt a pod spodem pracowników którzy nie mieli jeszcze projektu

1
Select p.pracownikID , p.nazwisko , c.Kod_projec ,c.Data_zadania
from Pracownicy  p
left outer  join czas_zadania  c
on p.pracownikID=c.pracownikID
order by c.Kod_projec desc
0
Mikajlo8 napisał(a):
Select p.pracownikID , p.nazwisko , c.Kod_projec ,c.Data_zadania
from Pracownicy  p
left outer  join czas_zadania  c
on p.pracownikID=c.pracownikID
order by c.Kod_projec desc

Łał dzieki śliczne zadziałało . (mam pytanko ponieważ jestem początkujący Jeżeli napisze się tak jak ty napisałeś czyli " Pracownik p " to znaczy że nie trzeba potem wpisywać całej nazwy tabeli tylko samo p . A jeżeli jest kilka tablic naprzyklad (pracownicy , samochody , projekty ) to jak można to wpisać np w FROM pracownicy p , samochody s , projekty x

1

Jeżeli chodzi o SQL SERVER to możesz napisać

from pracownicy AS P

lub

from pracownicy  P

Czyli nadajesz swojej tabeli alias P, i dla serwera sql(w obrębie zapytania) już nie istnieje Twoja tabela pracownicy a jedynie alias P.Ponieważ from logicznie wywoływane jest pierwsze, później już odnosisz się tylko do tego nadanego aliasu.Jeżeli 2 takie same atrybuty(kolumny) istnieją w dwóch tabelach które łączysz musisz przed nazwą atrybutu dać nadany alias np. p.pracownikID inaczej dostaniesz komunikat podobny do " ambiguous column name ".Ta sama zasada obowiązuje w filtrze where np. where **p.**pracownikID= <wartość>.

A jeżeli jest kilka tablic naprzyklad (pracownicy , samochody , projekty ) to jak można to wpisać np w FROM pracownicy p , samochody s , projekty x

Można ;-)

Pozdrawiam

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