我正在尝试计算并从表table_two
中获得列count
的和。我试图通过left join
函数获取列的和。但是它不能正常工作,我得到的列的和行的次数存在于table_two
中。
我在left join
的union表中不是很好,你能帮助我如何在我的代码中使用union函数吗。我展示了这个StackOverflow上的多个线程,但相信我,它很难理解,而且非常大。这就是为什么我在这里做了一个小桌子的帮助和容易理解。
先生,请帮我别把它标为重复和关闭的。我尝试了过去的1个星期,但没有代码工作。
我在试密码是-
SELECT *, SUM(table_two.count) AS totalQTY, SUM(table_one.qty) AS totalReqQty
FROM table_one
LEFT JOIN table_two
ON table_one product_key = product_code
LEFT JOIN product_table
ON table_two.product_code = product_table.product_ids
table_one
| ID | product_key | insert_date | qty
|------|------------------|--------------|------
| 1 | 123456789 | 2021-02-01 | 150
------------------------------------------------
table_two
| ID | product_code | add_date | count
|------|-------------------|--------------|-------
| 1 | 123456789 | 2021-02-02 | 10
| 2 | 123456789 | 2021-02-03 | 20
| 3 | 123456789 | 2021-02-04 | 5
--------------------------------------------------
PRODUCT_TABLE
| ID | product_ids | product_name
|------|-------------------|----------------------
| 1 | 123456789 | XYZ
--------------------------------------------------
需要输出:
| ID | product_key | product_name | qty | count |
|------|-------------------|---------------------------------
| 1 | 123456789 | XYZ | 150 | 35 |
-------------------------------------------------------------
您向我们显示的查询不起作用。
如果您希望通过使用聚合函数(如SUM())来汇总/滚动/您的数据,最好是在不使用这些函数的情况下运行查询。例如:
SELECT *
FROM table_one
LEFT JOIN table_two
ON table_one.product_key = table_two.product_code
LEFT JOIN product_table
ON table_two.product_code = product_table.product_ids
你得到这个结果。请注意,它有三行,数量150
显示在所有三行中。
您还没有对正在使用的数据库进行标记,但是,从每个数据库获取聚合的一种方法是使用apply
。
我还建议您修改ProductId命名约定中的不一致之处,您将其称为PRODUCT_CODE
和PRODUCT_KEY
和PRODUCT_IDS
。决定怎么称呼它并保持一致会让别人容易理解得多。
select p.product_ids as product_key, p.product_name, coalesce(q.Qty,0) totalQty, coalesce(c.[count],0) [Count]
from product_table p
outer apply (
select sum(qty) Qty
from table_one t1
where t1.product_key=p.product_ids
group by t1.product_key
)q
outer apply (
select Sum(count) [count]
from table_two t2
where t2.product_code=p.product_ids
group by t2.product_code
)c
另一种方法是简单地连接表,并按每个产品的列分组,然后聚合数量。
select p.product_ids as product_key, p.product_name, Coalesce(Sum(q.Qty),0) TotalQty, Coalesce(Sum(c.[count]),0) [count]
from product_table p
left join table_one t1 on t1.product_key=p.product_ids
left join table_two t2 on t2.product_code=p.product_ids
group by p.product_ids, p.product_name
在这个示例中,我有两个表,包含我的客户和一家办公用品商店的产品的数据。如下所示: 上面的表主要功能是为第三个表,即订单表,提供所需的数据 使用订单表,我可以从客户和产品表中获得我需要的报告的快速摘要。当我想查看每个客户每件商品的购买数量时,问题就开始了。 比如这些表格。 使用上面的表格,我需要创建一个报告,显示每个项目的每个客户的购买数量。 像这样。 我已经使用通过来显示项目,但是我现在的代码太长
问题内容: 可以说我有两个表:Persons(P_Id,Name)和Orders(O_Id,OrderNo,P_Id)…我想做一个左联接,它是: 这将给我同一人的不同行号的多个行。我真正需要获得的是每个人一行,并且列表中属于该人的所有OrderNo。 使用Coldfusion,我可以查询Persons表,遍历每条记录,并针对每条记录对Orders进行查询,并获取该P_Id的结果并将其放在列表中,并
我有多张谷歌表。所有数据列都具有相同的名称(id、日期、金额),但列数不同:在第1页中,“id”列是A列,在第2页中“id”列可以是C列或任何其他列。 我正在尝试创建一个主工作表,从所有工作表中提取所有数据并按列名排列。尝试使用Query,但它似乎可以与列id(A,B)一起工作,而在我的例子中,id(A,B)正在发生变化。 这是一张样品单
我试图以编程方式建立一些连接。问题是,当绘制连接时,会创建新的endpoint,而现有endpoint不再可单击。我确实有拖动行为的endpoint。我无法让endpoint(由连接创建)具有与原始endpoint相同的属性。 我做了一个工作jsFiddle:http://jsfiddle.net/SCSaf/4/ 在下面的代码中,初始化容器并绘制连接 在公共变量中,我尝试将源endpoint(e
我正在准备一份投资跟踪表。对于overview页面,我想查询并合并来自每个account选项卡的数据,但我很难弄清楚如何才能做到这一点。 以下是我的测试表链接:https://docs.google.com/spreadsheets/d/14sZmxkM65ax9BKrkjinwOrOQPrS_xhqPPLs68Rggii4/edit 我尝试使用的公式位于Overview选项卡的J列中。此公式适用
这里的结果是错误的,我不确定为什么。请帮忙