我有两个要从中提取数据的表。这是我所拥有的最小的娱乐:
Select
Jobs.Job_Number,
Jobs.Total_Amount,
Job_Charges.Charge_Code,
Job_Charges.Charge_Amount
From
DB.Jobs
Inner Join
DB.Job_Charges
On
Jobs.Job_Number = Job_Charges.Job_Number;
因此,发生的事情是我最终要为每个Job_Number的每个不同的Charge_Code和Charge_Amount获取一行。该行上的其他所有内容都相同。是否有可能使它返回更类似的内容:
Job_Number - Total_Amount - Charge_Code[1] - Charge_Amount[1] - Charge_Code[2] - Charge_Amount[2]
等等?
这样,它就为每个职位编号创建了一行,并且每个相关的费用和金额都在同一行上。我一直在阅读W3,但无法确切地说出这是否可行。有什么帮助,谢谢!
要在固定数量的列上旋转结果集,可以使用row_number()
和条件聚合:
select
job_number,
total_amount,
max(case when rn = 1 then charge_code end) charge_code1,
max(case when rn = 1 then charge_amount end) charge_amount1,
max(case when rn = 2 then charge_code end) charge_code2,
max(case when rn = 2 then charge_amount end) charge_amount2,
max(case when rn = 3 then charge_code end) charge_code3,
max(case when rn = 3 then charge_amount end) charge_amount3
from (
select
j.job_number,
j.total_amount,
c.charge_code,
c.charge_amount,
row_number() over(partition by job_number, total_amount order by c.charge_code) rn
from DB.Jobs j
inner join DB.Job_Charges c on j.job_number = c.job_number
) t
group by job_number, total_amount
上面的查询最多可提供3个费用代码和金额等于工作编号(按工作代码排序)。您可以select
使用更多max(case...)
表达式来扩展子句,以处理更多表达式。
试图确定是否可以创建一个连接表的查询,表一比表二小,表二有多个匹配表一条目的引用,查询将输出一个连接,其中表一的长度保留,但您只需添加更多列。我不确定这是否有意义,所以这里是我想要的一个例子 更新!! 保持原来的查询并使用PHP处理结果,也获得了很好的性能。让我知道如果你需要我张贴我的代码。
它重复显示每个房间类型的酒店名称匹配该酒店id,但我想显示所有房间类型的酒店名称一次。我怎样才能做到这一点? 谢谢。
问题内容: 我有2张桌子。为了简化: 表1,用户: userId int,userName nvarchar(50) 表2消息: msgId int,msgFrom int,msgTo int … msg1和msg2都包含userId。现在,我想获取所有消息,但是我想要用户名而不是msgFrom。我知道该怎么办: 一切正常,花花公子。获取用户名而不是msgTo的方法相同。现在的问题是,如何在同一调
问题内容: 我有以下数据库结构/层次结构: TABLE product_type : TABLE product : parent_id :是product_type ID TABLE treeNode : 它是一个树层次结构(根有n个子节点),层次结构的数量 未知 。 col的值为 “ CATEGORY” 或 “ GROUP” ,这意味着我有2棵树: Categories: Groups: TA
问题内容: 我只知道有关SQL的最低要求,所以请把我当作一个完整的菜鸟! 我有一个表,其中有很多行,但是其中一些行可以通过id配对,我想合并这些行的返回数组。 作为按比例缩小的版本,想象一下我表的上方,我的目标是返回2个结果 基于ID相关并且c2的值为’on’ 我的尝试是从一些阅读中得到以下内容,但没有得到 任何帮助将不胜感激 编辑 我认为Id只需发布下面的语法就可以了,这要归功于下面的答案: 再
我试图用SPARK SQL编写一个查询,执行三个表的联接。但是查询输出实际上是。它适用于单人餐桌。我的联接查询是正确的,因为我已经在oracle数据库中执行了它。我需要在这里附加什么更正?Spark版本是2.0.0。 我在一些网页上发现了下面的说明,但它仍然不起作用: