我应该在SQL,powerquery还是powerpivot中执行此操作? 我更愿意用powerquery或powerpivot来计算它。 有什么想法吗?
答案 0 :(得分:2)
只是对你的表结构做一些基本的假设。这样的事情应该有效:
SELECT Account.Name, MIN(Order_date) FirstOrderDate
FROM Account LEFT OUTER JOIN Orders on Account.AccountId = Orders.OrderId
AND Orders.Type='A'
GROUP BY Account.Name
答案 1 :(得分:0)
SELECT *
FROM accounts,order
WHERE accounts.id = order.account_id and order.id in
(SELECT TOP 1 id FROM order
WHERE type = "A"
ORDER BY date);
答案 2 :(得分:0)
假设: [订单]和[帐户]表之间存在一对多的关系。
<强>步骤:强>
在表[订单]中创建计算字段(非计算列),如下所示,
[Minimum Date] = min(Order[Order_Date])
以下是解释如何在Power Pivot中创建计算字段的链接。Link-1 Link-2
答案 3 :(得分:0)
Power Query可以轻松完成,无需任何自定义SQL。
过滤到A订单:右键单击Type列中的A单元格 文字过滤器&gt;等于。
然后右键单击AccountID和Group By作为最小订单日期:
一些硬编码数据显示它有效:
let
Source = Csv.Document("AccountID,Type,Order_Date
1,A,1/4/13
1,A,1/5/13
1,B,1/1/13
2,A,5/5/13"),
#"Promoted Headers" = Table.PromoteHeaders(Source),
TypedData = Table.TransformColumnTypes(#"Promoted Headers",{{"AccountID", Int64.Type}, {"Order_Date", type date}}),
#"Filtered Rows" = Table.SelectRows(TypedData, each [Type] = "A"),
#"Grouped Rows" = Table.Group(#"Filtered Rows", {"AccountID"}, {{"MinDate", each List.Min([Order_Date]), type date}})
in
#"Grouped Rows"