[英]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.