2013-03-17 15 views
8

私はいくつかのテーブルを持っています。 1つはワーカーテーブルで、ワーカーコード、ファーストネーム、ファーストネームが表示されます。 作業日コードで、作業者コード、ジョブ開始日、終了日および職場コードを示します。 スーパーバイザーには、ワーカー番号、名字、姓および職場コードがあります。 ジョブエリアには、職場コード名とスーパーバイザーがあります。SQL特定の日付より前にデータを表示する方法

私がやっていることは、作業者コードを日付の前に表示することです。10/09/10 私はこれを初めて使っているので、データベースを作成する前にすべて書面と理論を最初に実行しようとしています。

これは正しいですか?私は日付のことについてあまりにも確信していない。

理論的には私にはこの音が聞こえますが、何らかの形でそれが日付スタンプであることを伝える必要がありますか?

私は、労働者が10/09/10より前に仕事を始めた場合、その従業員の姓と上司の姓を探したいと思っていますか?私はこれがJOINになると思いますか?

ありがとうございました

+0

が、あなたはjob_startはdatetime型の列である場合に動作します持っているもの:データベースのスキーマを知らない、あなたの究極のクエリは次のようになります。あなたのテーブル構造なしでは、本当に助けてくれませんか?がんばろう。 –

+0

http://sqlzoo.net/ –

+0

job_start列は、次のようになります。10/09/10 job_endと同じです。ありがとう – user2172295

答えて

9

あなたは正しい方向です。あなたはクリーンアップにあなたのsqlをする必要があります

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

これは基本的に私のスキーマがどのように見えるかを示しています。 http://i47.tinypic.com/197fw8.jpg – user2172295

+0

ありがとうジャック。何らかの理由があるかどうか疑問に思っているのは、JobsDateのやり方では、従業員はそれに後ろ向きにいませんか?私の最後の行は私のスキーマに従って読むべきですか? ここで、jdt.jobstart <'10/09/10 ' – user2172295

+0

私の悪い、ワーカーはテーブルのエイリアスを持つ必要があります。 –

関連する問題