2012-02-29 42 views
1

我在我的数据库中的两个表命名...采购和它没有关系平衡跟踪....但我想从两个表,并BINF它两个格选择数据...选择查询不从表中检索数据?

要求

  EmpID |EmpRqsts|EmpDescription|ApproverID 
      1  |asdfsb |sadbfsbdf  |1 
      2  |asbfd |sjkfbsd  |1 

余额跟踪

  EmpId|BalanceAmnt|LastUpdated 
     | 1 |5000  |sdfbk 
     | 2 |3000  |sjbfsh 

EMPLOYEE表

 EmpId|EmpName 
     1 |Anil 
     2 |Raghu 

现在平衡跟踪器具有EmployeeTable的ForeignKey列...我想要的是...将从[平衡跟踪器]中的[请求]和[平衡安装] [最后更新]中从EmpTable [EmpRqsts]中选择[EmpName],并将其绑定到网格

这是我的存储过程我使用的检索数据

create procedure SP_GetEmployeeRequests 
    (@ApproverName varchar (50)) 
as 
begin 
    select 
     EmployeeDetails.Emp_Username, 
     RequestDetails.Request_Amount, 
     RequestDetails.Request_description, 
     BalanceTracker.Balance_Amount, 
     BalanceTracker.LastApproval, 
     BalanceTracker.LastUdated 
    from 
     EmployeeDetails, RequestDetails, BalanceTracker 
    where 
     EmployeeDetails.Emp_ID = RequestDetails.Emp_ID 
     and BalanceTracker.Emp_ID = RequestDetails.Emp_ID 
     and RequestDetails.Approved_ID = (select Approved_ID 
              from ApprovalDetails 
              where Approved_By = @ApproverName) 
end 

一切都很好,直到在这里,但这个查询只检索列名。但tables..can任何一个没有价值观帮助我什么是错我的查询..

回答

0

尝试以下操作:

CREATE procedure SP_GetEmployeeRequests 
    (
     @ApproverName varchar (50) 
    ) 
    AS 
    BEGIN 

    SELECT ed.Emp_Username, rd.Request_Amount, rd.Request_description, bt.Balance_Amount, bt.LastApproval, bt.LastUpdated 
    FROM EmployeeDetails ed JOIN RequestDetails rd ON ed.Emp_ID = rd.emp_ID 
    JOIN BalanceTracker bt ON bt.Emp_ID = rd.Emp_ID 
    JOIN ApprovalDetails ad ON rd.Approved_ID = ad.Approved_ID 
    WHERE ad.Approved_By = @ApproverName 

    END 
    GO 
+0

同样的问题它不是retrievn值 – 2012-02-29 11:21:48

0

我认为错误是你正在检查“Approved_ID”,而你的架构中有“Approver_ID”

create procedure SP_GetEmployeeRequests 
    (
    @ApproverName varchar (50) 
    ) 
    as 
    begin 
     select ed.Emp_Username 
      , rd.Request_Amount 
      , rd.Request_description 
      , bt.Balance_Amount 
      , bt.LastApproval 
      , bt.LastUdated 
      from RequestDetails rd 
      join BalanceTracker bt 
      on rd.Emp_ID = bt.Emp_ID 
      join EmployeeDetails ed 
      on rd.Emp_ID = ed.Emp_ID 
      join ApprovalDetails ad 
      on rd.Approver_ID = ad.Approver_ID 
     where ad.Approver_By = @ApproverName) 
    end 
    go 
+0

消息4104,级别16,状态1,过程SP_GetEmployeeRequests2,行7 多部分标识符“EmployeeDetails.Emp_Username”不能被约束。 – 2012-02-29 11:21:26

+0

对不起,忘了替换一些表的别名。 – 2012-02-29 13:48:58