我有一个包含以下列的表:
Account_No, Start_Date, End_Date
我使用 SQL 通过 ODBC 选择命令将此表下载到电源查询中。
现在,我想从另一个表中的Start_Date
到End_Date
获取上表中给出的所有帐户的交易总和和计数。例如Transaction_Table
。我该怎么做才能得到我想要的结果。
此致
KAM
答案 0 :(得分:1)
此时您可能根本不需要Power Query。 假设您的数据库服务器是MS SQL Server 2008或更高版本,
WITH t1([Account_No], StartDate, EndDate) As
(
SELECT [Account_No], StartDate = MIN([Start_Date]), EndDate = MAX([End_Date])
FROM Table1
GROUP BY Account_No
)
SELECT
[Account_No]
, Amount = SUM([Field_Transaction_Total])
, [Transaction_Count] = COUNT([Field_Transaction_ID])
FROM [Transaction_Table] t2
INNER JOIN t1 ON t2.[Account_No] = t1.Account_No
AND t2.[Field_Transaction_Date] BETWEEN t1.StartDate AND t1.EndDate
如果需要,您还可以使用WITH块内的查询的副本来将此表与帐户和日期一起提供给Excel。
如果您使用其他SQL Server,只需重构此代码,我希望您有这个想法。
答案 1 :(得分:0)
您可以在自己编写的 SQL 中使用GROUP BY
语句,也可以根据Start_Date
向End_Date
过滤表格然后向右 - 单击要计数的列,然后选择Group By
。
答案 2 :(得分:0)
我会根据您的 Transaction_Table 开始新的查询。然后我会添加一个合并步骤,加入 Account_No 的第一个查询。然后我会从生成的 NewColumn 扩展 Start_Date 和 End_Date 。
接下来,我将添加一个自定义列,并编写如下公式:
= [Transaction_Date] >= [Start_Date] and [Transaction_Date] <= [End_Date]
结果列将显示TRUE或FALSE。过滤为真。
最后,我会根据需要将分组依据步骤添加到Sum和Count。
我希望我能正确理解你的要求 - 你的问题并不是很清楚。