获得最低价值

时间:2017-03-13 06:03:08

标签: c# sql

 SqlCommand cmd = new SqlCommand(@"
    SELECT 
        dbo.tblDepartment.Prefix,
        dbo.tblQueue.QueueNumber, 
        dbo.tblEmployees.EmpName 
    FROM dbo.tblDepartment 
    INNER JOIN dbo.tblEmployees ON dbo.tblDepartment.EmpID= dbo.tblEmployees.EmpID 
    INNER JOIN dbo.tblQueue ON dbo.tblDepartment.DeptID = dbo.tblQueue.DeptID 
    WHERE tblDepartment.DeptID = 1 
    and tblQueue.QueueNumber in (SELECT 
                                     MIN(QueueNumber) 
                                 FROM tblQueue 
                                 WHERE tblQueue.QueueStatus = 'Pending')", con);

我有一个查询,它的列状态等于“待定”时获得最小值。但每当我将其状态更改为“完成”时,它会获得状态为“完成”而不是待处理的最小值。

1 个答案:

答案 0 :(得分:0)

显然你的问题不在代码中,它可能是数据库的混合或类似的东西。

编辑:但是代码确实有问题:你需要在内部查询中指定DeptID,就像这样(here is a demo):

SELECT 
    dbo.tblDepartment.Prefix,
    dbo.tblQueue.QueueNumber
    FROM dbo.tblDepartment  
    INNER JOIN dbo.tblQueue ON dbo.tblDepartment.DeptID = dbo.tblQueue.DeptID 
    WHERE tblDepartment.DeptID = 2 
    and tblQueue.QueueNumber in 
    (
        SELECT MIN(QueueNumber) 
        FROM tblQueue 
        WHERE tblQueue.DeptID = 2 
            and tblQueue.QueueStatus = 'Pending'
    )