2011-12-22 16 views
0

私は、2つの異なるテーブルからの選択を行うことがしようとしている、このような出力の結果:異なる条件で複数の列を選択するにはどうすればよいですか?

Punchdate | EmployeeCode | Name | Punch_in | Break | Lunch | Second_start | Break | Punch out 
--------------------------------------------------------------------------------------------- 
11.08.2005  1021 John Smith 7:00 9:00  12:00 1:00   3:10  4:30 

dbo.Punchintervals

employee(dbo.punchintervals.employee=dbo.employee.objid) 
intime 
outime 
department/*(dbo.punchintervals.department = dbo.emprole.objid*/ 
/*(intime column has all the punches form all the departments,they need to be sorted trough the department column)*/ 

dbo.employee

employee/*(dbo.employee.objid=dbo.punchinterval.employee)*/ 
name 
code 

dbo.emprole

objid/*objid is just a vule example 10 (dbo.emprole.objid = dbo.punchinterval.department)*/ 
name/*(name of the role example: quality control, punch out, lunch,break)*/ 

これまでのところ、これはザ・参加

SELECT  TOP (100) 
    PUNCHDATE,CODE,name 
     ,( 
      SELECT [sitewatch].[dbo].Punchinterval.INTIME 
      FROM [sitewatch].[dbo].Punchinterval AS PunchIn 
      WHERE [sitewatch].[dbo].Punchinterval.DEPARTMENT = '10' 

     ) AS Startime 
     ,( 
      SELECT [sitewatch].[dbo].Punchinterval.INTIME 
      FROM [sitewatch].[dbo].Punchinterval AS PunchIn 
      WHERE [sitewatch].[dbo].Punchinterval.DEPARTMENT = '11' 
     ) AS break2 

FROM [sitewatch].[dbo].Punchinterval,[sitewatch].[dbo].employee 

答えて

0
SELECT * FROM dbo.employee 
JOIN dbo.Punchintervals ON dbo.punchintervals.employee=dbo.employee.objid 
JOIN dbo.emprole ON dbo.emprole.objid = dbo.punchinterval.department 
+0

は素晴らしいアイデアですが、我々は部門= 10,11,12適切な開始時刻を取得するための条件を必要とするか、または私の最後のattempましたdbo.employeerole.name = '品質管理'、 '生産'、 '販売'、 '管理' –

+0

これらの条件をwhere節に追加できます。 – ChristopherS

関連する問題