【发布时间】:2020-11-26 08:26:22
【问题描述】:
我需要报告每周的变化。 这是今天金额的代码
SELECT
[Entry No_],
[Customer No_],
[Posting Date],
[Description],
[Currency Code],
Trans_type = case when [Deposit]=1 then 'Deposit'
when [Imprest]=1 then 'Imprest'
else 'Other' end,
A.Amount
FROM Table1
LEFT JOIN
(
SELECT Distinct [Cust_ Ledger Entry No_],
SUM ([Amount EUR]) as 'amount'
FROM Table2
group by [Cust_ Ledger Entry No_]
having
SUM ([Amount EUR]) <> '0'
)A
on [Entry No_] = A.[Cust_ Ledger Entry No_]
Where
A.Amount is not NULL
生成前一周数据的代码在这里(仅添加 where 子句):
SELECT
[Entry No_],
[Customer No_],
[Posting Date],
[Description],
[Currency Code],
Trans_type = case when [Deposit]=1 then 'Deposit'
when [Imprest]=1 then 'Imprest'
else 'Other' end,
A.Amount
FROM Table1
LEFT JOIN
(
SELECT Distinct [Cust_ Ledger Entry No_],
SUM ([Amount EUR]) as 'amount'
FROM Table2
where [posting Date] < '2020-11-23'
group by [Cust_ Ledger Entry No_]
having
SUM ([Amount EUR]) <> '0'
)A
on [Entry No_] = A.[Cust_ Ledger Entry No_]
Where
A.Amount is not NULL
合并两个查询然后导出到 Excel 并进行数据透视就足够了,但问题是我需要过去 50 周的结果。有什么聪明的方法可以避免联合 50 个表并运行一个简单的代码来生成每周报告吗?
谢谢
【问题讨论】:
-
示例数据和预期结果将帮助我们在这里为您提供帮助,但是,我认为这里没有任何
UNION查询的理由;我怀疑你只需要聚合和GROUP BY子句。
标签: sql sql-server loops join union