当前位置: 首页 > 知识库问答 >
问题:

合并两个相关SQL查询的输出

郑燕七
2023-03-14

在SQL Server中,我有两个来自两个表的查询。

第一个表“Values1”有两列:“index1”和“value1”。第二个表“Values2”有“index2”和“value2”列。

我想要一个查询,对于一对索引值“d1”和“d2”,可以输出所有“index1”和“value e1”行,其中对应的index1在“d1”和“d2”之间,以及“Values2”表中具有“index2”值在“d1”和“value e1”之间的行数作为第一个查询的结果,我希望第二个查询循环遍历第一个查询的结果。所以如果第一个表是:

index1:value1
10:'A'
20:'B'
30:'C'
40:'D'
50:'E'

第二个表是:

index2:value2
0:'F'
5:'G'
15:'H'
25:'I'
35:'J'

对d1=18和d2=32的查询将导致:

20,B,3
30,C,4

如何组合这两个查询来生成这种结果?

共有3个答案

马魁
2023-03-14

你的问题有点不清楚。获取值1记录很简单:

select * from values1 where index1 between @d1 and @d2;

至于第二部分:您想统计表2中的记录,而与您的解释相矛盾的是,您似乎只想统计索引为2的记录

select count(*) from values2 where index2 <= @index1

两者结合在一起:

select
  index1,
  value1,
  (select count(*) from values2 v2 where v2.index2 <= v1.index1) as cnt
from values1 v1
where index1 between @d1 and @d2;
广绪
2023-03-14
Select  *
From    (
        Select  index1 as [index],value1 as value
        From    ( Values (10,'A'),(20,'B'),(30,'C'),(40,'D'),(50,'E'))as Temp(index1,value1)

        Union
        Select  index2 as [index],value2 as value
        From    ( Values (0,'F'),(5,'G'),(15,'H'),(25,'I'),(35,'J')) as Temp(index2,value2)
        ) D1
Where   D1.[index] between 18 and 32
order by [index] 
霍永年
2023-03-14

您似乎想要:

select t1.index1, t1.value1, count(*)
from t1 join
     t2
     on t2.value2 between @d1 and t1.value1
where t1.value1 between @d1 and @d2
group by t1.index1, t1.value1;
 类似资料:
  • 问题内容: 查询1: 查询2: 我想将两个结果合并为两列,其中缺少一列=查询2-查询1以加快处理速度。我该怎么做?示例: 我有两个结果: // ----------------------------------------查询:1 1 2 3 4 // --------------------------------------查询:2 4 5 6 8 // ------------------

  • 问题内容: 我有桌子 表格1 和表2 我想将两个没有公用字段的表合并到一个表中,如下所示: 表3 即,就像将两个桌子并排放置。 我被卡住了!请帮忙! 问题答案: 为每个表中的每一行获取一个行号,然后使用这些行号进行完全连接: 这是假定SQL Server> = 2005。

  • 问题内容: 我要么变老,要么我需要写的查询变得越来越复杂。以下查询将获取与该用户的所有关联。 该表为(,,,); 现在,我还需要通过 独立查询如下所示: 但是,是否可以将这两个查询合并为一个查询?我的逻辑认为应该这样,尽管我不知道如何进行实际的JOIN。 问题答案: 我可能会使用UNION。

  • 问题内容: 如何合并这两个SQL语句? 两个表中都存在hits10,hits11和hits12。 问题答案: 使用UNION查询-只需在两个查询之间填入“ UNION”即可: 更新 将联合包装在另一个查询中:

  • 问题内容: 是否可以将两个单独的(不相关的)SQL查询的结果合并到一个视图中。我正在尝试汇总一些用户数据并计算本月视频的观看次数,以显示在仪表板上。 IE, 和 我想创建一个包含这两个结果的视图。 这可能吗? 问题答案: 当然,仅当t1和t2中的输出均为一行时,这才是非常有效的。

  • 问题内容: 我有一个库存表,我想创建一个报告,以显示订购商品的频率。 “库存”表: 基本上,我需要将这两个查询结合在一起。 查询打印库存余额: 打印销售统计信息的查询 我认为某种JOIN可以完成这项工作,但我不知道如何将查询粘合在一起。 所需的输出: 这仅是示例。也许我将需要添加更多条件,因为有更多列。是否存在将多个查询组合在一起的通用技术? 问题答案: