2013-03-17 13 views
8

Mam kilka tabel. Jednym z nich jest tabela robocza , która wyświetla kod roboczy, imię i nazwisko. Daty pracy z kodem pracownika, datą rozpoczęcia, zakończenia i numerem obszaru roboczego. Supervisor ma numer pracownika, imię, nazwisko i kod obszaru pracy. Obszar roboczy ma nazwę obszaru roboczego i przełożonego.SQL Sposób wyświetlania danych przed określoną datą

Co próbuję zrobić, to wyświetlić kod pracownika przed datą 10/09/10 Ponieważ jestem nowy w tym, staram się zrobić to wszystko pisemnie i teoretycznie przed dokonaniem bazy danych.

Czy to brzmi dobrze? Nie jestem zbyt pewny co do daty.

select worker 
From Job Dates 
where job start < '10/09/10' 

Teoretycznie to brzmi dobrze dla mnie, ale czy musi w jakiś sposób przekazać zapytanie, że jest datownikiem?

Chciałbym następnie znaleźć nazwisko pracowników i nazwiska ich przełożonych, jeśli pracownicy rozpoczęli pracę przed 10 września 2010 r.? Zgaduję, że to będzie z JOIN?

Dzięki

+0

musisz wyczyścić sql, ale to, co masz, będzie działać, jeśli job_start jest kolumną datetime. Naprawdę nie mogę pomóc bez twojej struktury stołu. Powodzenia. –

+0

http://sqlzoo.net/ –

+0

Kolumna job_start będzie następująca: 10.09.10 to samo, co job_end. Dzięki – user2172295

Odpowiedz

9

Jesteś na dobrej drodze. Nie znając schematu bazy danych, ostateczne zapytanie będzie wyglądać mniej więcej tak:

select w.surname, s.surname 
From worker w INNER JOIN JobDatesTable jdt on w.id = jdt.id 
       INNER JOIN SuperVisor s on w.id = s.id 
where jdt.jobstart < '20101009' 
+0

Zasadniczo tak powinien wyglądać mój schemat. http://i47.tinypic.com/197fw8.jpg – user2172295

+0

Dzięki Jack. Zastanawiasz się tylko, czy istnieje jakiś powód, dla którego pracownik nie ma za sobą tak, jak robi to JobsDate? Moja ostatnia linia powinna być czytana zgodnie z moim schematem? gdzie jdt.jobstart <'10/09/10 ' – user2172295

+0

mój zły, pracownik powinien mieć w alias tabeli. –

Powiązane problemy