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

和不同的加入条件

封德华
2023-03-14

我有点卡住了。这个问题很接近我需要的,但不完全是:

[Products_Final]是订单id上带有订单表的联接表

订单表是

Order ID|Order Date
=====================
    1       1.1.19
    2       1.20.19

诸如此类

ProductFINAL_ID | fruit | Country | Quantity |Order Date
=================================================
    1         Apple         USA           100  1.1.19
    2         Apple         USA         100 1.1.19
    3         Apple          Italy          10 1.21.19
    4         Apple         Japan          30  1.22.19
    5         Apple          USA        100    2.1.19

所以如果我这样做了

Select Fruit, Country,  sum(qty)
from Products  p
join order o on o.order_id = p.order-id
where Order_date < 2.1.19
group by fruit, country


Fruit|Country|Quantity
==========================
    Apple USA 200
    Apple Italy 10
    Apple Japan 30

我想要的是基于不同水果和国家组合的100 10 30 = 140的总数,因为Product_id2看起来可能是重复的顺序。

Quantity
140

如果我做了区分,总和似乎不起作用。

我如何把这两件事结合在一起?下面的我也试过了但是接不上

Select sum(qty)
from (select distinct (fruit,country), qty from Products)
join order o on o.order_id = p.order-id <- this part errors out
where Order_date < 2.1.19

共有1个答案

易和怡
2023-03-14

试试这个:

SELECT Fruit, Country, SUM(qty)
FROM (SELECT DISTINCT order_id, fruit, country, qty FROM products) AS p
JOIN orders AS o ON o.order_id = p.order_id
WHERE Order_date < 2.1.19
GROUP BY fruit, country

您需要在子查询中选择order\u id,以便加入它。不要在SELECT列表中的任何列周围加括号。

 类似资料:
  • 问题内容: 我想知道用户是否在2个相关表中的 任何 一个条目。 桌子 用户可以有一个雇员和/或学生的条目。如何在一个查询中获取该信息?我试过了: 但是它将仅返回在 两个 表中 都有 条目的用户。 SQL Fiddle示例 问题答案: 您可以使用外部联接: 或者(如果您对EMPLOYEE或STUDENT表中的数据不感兴趣)

  • 问题内容: 我的数据库中有三个表,一个学生,一个班级和一个作业。POJO如下: 基本上,一个学生有一个当前班级,以及一份作业清单(他被分配到的所有班级)。 我的问题是,在hibernate状态下,我想知道所有没有班级() 或 分配给属于“ 1”学年班级但已设置为 我设法制定了两个单独的标准来获得我想要的东西: 和 但是我不知道如何用or来“统一”这两个条件。 问题答案: 如果要创建包含许多对象的

  • 问题内容: 我一直在尝试 HQL 和 Criteria的 不同组合,但我无法避免某些不必要的 联接 (在这两者中)和某些不必要的 选择 (在Criteria中)。 在我们的场景中, 段* 和 应用程序 实体之间具有 @ManyToMany 关系(导航是从段到应用程序)。 *** 首先,我尝试了以下 条件 : 威奇产生这个SQL: 如您所见, Criteria从APPLICATIONS选择列 ,我不

  • 我有一张清单: 我想有这样的结果:

  • 我有3个表格:学生,课程(重要领域点),学生课程(重要领域成绩)。 如果成绩大于或等于70,则考试通过,因此学生将获得分数。如果成绩低于70,学生将不会获得分数。如果学生的学分之和大于10,他就毕业了。 我需要选择学生姓名,他的通过分数的总和,他所有成绩的平均值。我可以选择学生姓名,他的通过分数和他通过成绩的平均数之和。但我需要所有成绩的平均值。 我写了下面的查询。

  • 问题内容: 我有两个不同的数据框,我想对它们执行一些sql操作。不幸的是,就像我正在使用的数据一样,拼写通常是不同的。 请参阅下面的示例,我认为语法看起来像userid属于df1,username属于df2。有人帮我吗? 问题答案: 名称不同时,请使用参数代替: