2012-08-04 54 views
0

我试图显示从AnnualBudget最小值,这里是到目前为止,我已经做了代码:试图找到最小值

SELECT WARD.HospitalCode, 
     HOSPITAL.HospitalCode Name, 
     WardNo, 
     AnnualBudget 
FROM WARD, 
    HOSPITAL 
WHERE (AnnualBudget) = 
    (SELECT AnnualBudget 
    FROM WARD 
    WHERE AnnualBudget = 
     (SELECT MIN(AnnualBudget) 
      FROM WARD 
      WHERE AnnualBudget > 
       (SELECT MIN(AnnualBudget) 
       FROM WARD 
     ) 
    ) 
); 

但而不是选择最小值,它实际上选择最大价值,任何人都可以帮忙吗?

+0

您的数字是否为偶然的负值? – 2012-08-04 14:13:36

+0

表中的值都是正值,我真的很困惑,为什么会发生这种情况。 – jeremy 2012-08-04 14:18:28

+0

这是一个非常可怕的嵌套子查询集。当然有更好的方法来重写它们。 – Vic 2012-08-04 14:20:38

回答

0

下面的查询会给你的东西比分钟时

select min(annualbudget) 
from ward 
where annualbudget > (
    select min(annualbudget) 
    from ward 
) 

如果你想分钟,试试这个:我不太预言这些天,但它应该工作)

select (stuff) 

from ward w 
join hospital h on h.hospitalId = w.hostpitalId 

where w.annualbudget = (select min(annualbudget) from ward) 
0

不应该这样更像吗?

SELECT W.HospitalCode, H.HospitalCode, Name, WardNo, AnnualBudget 
FROM WARD W, HOSPITAL H 
WHERE W.HospitalCode = H.HospitalCode 
    and W.AnnualBudget = (Select MIN(AnnualBudget) FROM WARD W2 
               WHERE W2.HospitalCode = W.HospitalCode) 

我假设WARD中的医院代码是一个外键,并且您希望每个医院的预算最低,对吧?

+0

我只是想通过使用子查询来获得最低预算的WARD,我尝试了你写的内容,并且显示了最低和次低。 – jeremy 2012-08-04 14:26:40

+0

我自己排序,感谢您的帮助!非常惊讶。 – jeremy 2012-08-04 14:31:13

+0

你最终得到了什么? – hol 2012-08-04 14:32:28