我的数据组织如下:
Invoice_Id Invoice_Line Kit_Flag Part_Number
---------- ------------ -------- -----------
AB12345 1 K KT-1234A
AB12345 2 C 1234567
AB12345 3 C 1234568
AB12345 4 C 1234569
AB12345 5 C 1234560
AB12345 6 K KT-1234C
AB12345 7 C 1234561
AB12345 8 C 1234562
AB12345 9 K KT-1234Q
AB12345 10 C 5678901
AB12345 11 C 1234561
AB12345 12 C 1234562
我试图从单个Invoice_Id(K =父级,C
=子级)中,从Kit_Flag为’K’的最后一行获取后续行的Part_Number值。为了简单起见,我在这里只列出了一个发票ID。
因此,对于以上数据,结果将如下所示:
Invoice_Id Invoice_Line Kit_Flag Part_Number Parent_Part
---------- ------------ -------- ----------- ------------
AB12345 1 K KT-1234A KT-1234A
AB12345 2 C 1234567 KT-1234A
AB12345 3 C 1234568 KT-1234A
AB12345 4 C 1234569 KT-1234A
AB12345 5 C 1234560 KT-1234A
AB12345 6 K KT-1234C KT-1234C
AB12345 7 C 1234561 KT-1234C
AB12345 8 C 1234562 KT-1234C
AB12345 9 K KT-1234Q KT-1234Q
AB12345 10 C 5678901 KT-1234Q
AB12345 11 C 1234561 KT-1234Q
AB12345 12 C 1234562 KT-1234Q
在Excel中,可以通过“ = If(C2 =“
K”,C3,D2)”之类的方法来实现,而这实际上是我们暂时必须解决的问题,但是我正在尝试实现这一点的自动化。
该表位于Oracle 9i和Sybase上,但是Sybase实例不具有分析功能。
我认为这行不通(而且行不通),但从概念上讲,它表明了我正在尝试做的事情:
select
t.Invoice_Id, t.Invoice_Line, t.Kit_Flag, t.Part_Number,
case
when Kit_Flag = 'K' then Part_Number
else lag(Parent_Part, 1) over (partition by Invoice_Id order by Invoice_Line)
end as Parent_Part
from Invoice_Data t
欢迎任何建议和/或指导。
一种方法是使用嵌套排名功能。首先,为所有获得一个值的常量分配一个常量值(使用max() over
),然后将其用作分区。
select t.Invoice_Id, t.Invoice_Line, t.Kit_Flag, t.Part_Number,
max(KitPart) over (partition by invoice_id, KitNum) as Parent_Part
from (select t.*,
sum(isKit) over (partition by InvoiceId order by InvoiceLine) as KitNum
from (select t.Invoice_Id, t.Invoice_Line, t.Kit_Flag, t.Part_Number,
(case when Kit_Flag = 'K' then 1 else 0 end) as IsKit,
(case when Kit_Flag = 'K' then Part_Number end) as KitPart
from Invoice_Data t
) t
) t
我在 df 中有三列 我想在col1=x时执行以下操作,存储col2和col3的值,并在col1=y预期输出时将这些列值分配给下一行 任何帮助将不胜感激 注意:-火花 1.6
问题内容: 如何根据生效日期获取当前记录?我应该使用子查询吗?除了MAX,我还有什么可以使用的吗? 我有这些表示例。 我的目标是获取 当前 属于用户放入的OrganizationUnit的所有ResourceID 。例如,如果用户将 SMESM1HTOVEOVE 放入OrganizationID参数中,则它将拉出当前位于 SMESM1HTOVEOVE 下的所有 ReourceID 。到目前为止,我
问题内容: 首先,这个问题的标题太可怕了,但是我没有找到更好的方式来描述我的问题。 可能有一种非常简单的方法来执行此操作,但我无法弄清楚。这与这个问题非常相似,但是我在sqlite3(iOS)上运行,因此我怀疑我的选择受到更多限制。 我有一张带有产品记录的表格。所有记录都有一个ID(请注意:我不是在说行ID,而是每个产品唯一的标识号)。某些产品在表中可能有两个条目(两者都具有相同的ID)。唯一的区
问题内容: 假设我有一些SKU的购买和销售数据: 假设按购买顺序出售,我如何通过SQL查找销售利润率?例如,sku 123的保证金是 其中有2件以17.50购买,还有1件以15.00购买尚未售出。 问题答案: 好问题。我采用的方法是计算总销售额。然后计算累计购买量,并将其与特殊逻辑结合起来以得出正确的结合算术: 注意:我尚未测试此查询,因此它可能存在语法错误。
问题内容: 数据库-表 我运行了以下查询 搜索从2007年9月19日到2007年9月26日的记录,即8条记录。 这导致只显示2007年9月19日至2007年9月22日的记录,即仅5条记录 如何生成搜索查询,以便我可以获取所有8条记录-即这些日期的记录 预期产量 试过了 暂无记录 问题答案: 该日期可能具有时间成分。这是Oracle数据类型的一部分-但查询时通常不会显示。 更好的方法使用以下逻辑:
问题内容: 我有这样的MySQL表 区域表 … 和学校表 我的注册表中有多个选择(下拉)菜单。区域下拉列表如下所示 我想做的是,获取“区域” ID,然后基于“学校”表中的ID(先前选择的ID)填充学校下拉菜单。我是JS的新手。请帮助我修复它。提前谢谢。 问题答案: