0

我有一个复杂的查询,它给了我这个结果

Area  MinValue  MaxValue
A      12.34     34.45
B      34.23     41.23
C      10.23     15.12

现在,我从另一张桌子上计算每个区域

Area  Count
A     24
B     50
C     15
D     22

我必须比较这两个结果集以找出哪个区域计数没有落在最小值和最大值之间。

预期结果集:

Area MinValue MaxValue CurrentValue 
B    34.23     41.23      50
4

3 回答 3

3

您必须首先加入您的两个结果集Area,然后过滤您的结果。

SELECT a.[Area], a.[MinValue], a.[MaxValue], b.[Count] AS CurrentValue
FROM [complexQueryTable] a
JOIN [anotherTable] b
    ON b.[Area] = a.[Area]
WHERE b.[Count] NOT BETWEEN a.[MinValue] AND a.[MaxValue]

SQL 演示

| 面积 | 最小值 | 最大值 | 当前值 |
---------------------------------------------
| 乙| 34 | 41 | 50 |
于 2013-07-24T18:58:18.360 回答
2
SELECT
     QueryB.Area,
     QueryA.MinValue,
     QueryA.MaxValue,
     QueryB.Count AS CurrentValue
FROM ( /* Your first query */ ) QueryA
JOIN ( /* Your second query */) QueryB ON QueryA.Area = QueryB.Area
WHERE QueryB.Count NOT BETWEEN QueryA.MinValue AND QueryB.MaxValue
于 2013-07-24T19:00:48.603 回答
1

尝试

    SELECT T1.Area, MinValue, MaxValue, Count AS CurrentValue
    FROM Table1 T1 
    INNER JOIN Table2 T2 
    ON T1.Area=T2.Area
    WHERE Count < MinValue AND Count > MaxValue
于 2013-07-24T19:00:05.110 回答