1
我有以下表:如何在子 - 子查询引用表
Bradford_Score_Bands
BandNo InclusiveScore
------------------------
1 0
2 150
3 500
Bradford_Scores
ClockNo Dated Score
--------------------------------
2 30/10/14 123
99 30/10/14 3
2 29/10/14 101
99 29/10/14 8
雇员
ClockNo
--------------------
2
3
99
我的目标是根据自己的分数来制定出BandNo每个ClockNo今天和昨天
我能找到根据分值这样正确的BandNo:
SELECT MIN(BandNo) FROM Bradford_Score_Bands WHERE InclusiveScore >= 123
我可以找到得分今天和昨天对每个人是这样的:
SELECT DISTINCT EMP.ClockNo,
ISNULL((SELECT Score FROM Bradford_Scores BFT WHERE Dated = '2014-10-30' AND BFT.ClockNo = EMP.ClockNo), 0) As ScoreToday,
ISNULL((SELECT Score FROM Bradford_Scores BFT WHERE Dated = '2014-10-29' AND BFT.ClockNo = EMP.ClockNo), 0) As ScoreYesterday
FROM Employees EMP
但我不能似乎能够将两者结合起来。我觉得像这样的工作:
SELECT DISTINCT EMP.ClockNo,
(SELECT MIN(BandNo) FROM Bradford_Score_Bands WHERE InclusiveScore >=
(SELECT Score FROM Bradford_Scores BFT1 WHERE Dated = '2014-10-30' AND BFT1.ClockNo = EMP.ClockNo)),
(SELECT MIN(BandNo) FROM Bradford_Score_Bands WHERE InclusiveScore >=
(SELECT Score FROM Bradford_Scores BFT2 WHERE Dated = '2014-10-29' AND BFT2.ClockNo = EMP.ClockNo))
FROM Employees EMP
但在我引用BFTX.ClockNo = EMP.ClockNo子查询中的部分似乎是导致查询失败。我得到的帮助的普遍错误“数据记录ManagerCurrency不是在记录”
编辑: 我试图在SQL Server此完全相同的查询和它的作品,所以是有办法重新写这使它更普遍友好?
谢谢 - 这似乎在Pervasive和SQL Server上都有技巧。 – 2014-10-31 16:20:34