繁体   English   中英

无法连接具有不同行数的表

[英]Unable to join tables with different number of rows

假设我们有 2 张桌子:

表十:

A | B | C | D |
---------------
1  2    abc somedate
2  4    xyz somedate
3  5    abc somedate
4  7    xyz somedate

表 Y:

A | E | C | Z |
---------------
1  2    abc somedate
2  4    xyz somedate
3  5    abc somedate
4  7    xyz somedate

假设 A 和 C 是两个表的主键和外键。

现在我想通过检查 D 日期是否介于给定的开始日期和结束日期之间来对表 X 中 B 的值求和,并将此结果与表 Y 连接,表 Y 应该通过检查 Z 是否介于给定的开始和之间来返回 count(E)结束日期。

如何在单个查询中实现这一目标?

我在两个表上尝试了单独的查询,它们都将返回一组不同的行。 所以我不确定如何将两者结合起来并在 1 个查询中返回结果。

不确定有很好的理解。

但据我了解,您想要一个 SQL 查询,其结果有两个不同。 它似乎不是 JOIN 而是 UNION。

让我提出以下建议:

(SELECT SUM(B) AS sumofb FROM X WHERE D BETWEEN StartDate AND EndDate)
UNION
(SELECT COUNT(E) AS countofe FROM Y WHERE Z BETWEEN StartDate AND EndDate);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM