Sql 从聚合的自联接创建视图

Sql 从聚合的自联接创建视图,sql,sql-server,join,aggregate-functions,self-join,Sql,Sql Server,Join,Aggregate Functions,Self Join,我已经工作了大约两周,为我工作的公司建立一些详细的报告选项。我在上周或前一周的某个时候在这里问了一个问题,这让我开始了一个问题,最终我把问题严格化了 我从一个存货分类账开始,它只记录单个交易。我们的目标是建立一个更全面的分类账,该分类账将保存一个库存总额、一个销售总额,如果一个项目缺货,它将跟踪直到再补给的天数 初始查询使用了与。。。as语句定义表及其聚合,然后再对聚合列进行自连接。不幸的是,我不能做同样的事情来创建一个视图,所以我需要找到一种不同的方法来创建这些聚合,这仍然允许我自己加入它们,

我已经工作了大约两周,为我工作的公司建立一些详细的报告选项。我在上周或前一周的某个时候在这里问了一个问题,这让我开始了一个问题,最终我把问题严格化了

我从一个存货分类账开始,它只记录单个交易。我们的目标是建立一个更全面的分类账,该分类账将保存一个库存总额、一个销售总额,如果一个项目缺货,它将跟踪直到再补给的天数

初始查询使用了与。。。as语句定义表及其聚合,然后再对聚合列进行自连接。不幸的是,我不能做同样的事情来创建一个视图,所以我需要找到一种不同的方法来创建这些聚合,这仍然允许我自己加入它们,以保持我的总数有序

到目前为止,我是如何重新整理我的陈述的:

将视图“QLedger”创建为 选择tcum.txnid, tcum.项目, tcum.TxnDate, tcum。[传输类型], tcum.数量, tcum.cumq 从选择*,求和数量 按InventoryLedger.Item进行过度分区 按InventoryLedger.TxnID排序的订单 cumq前面的无边界行, 防抱死制动系统 总和 [Tran Type]=“装运”时的情况 或[Tran Type]=“客户退货” 然后数量结束 通过qryrptInventoryLedger.item进行分区 按InventoryLedger.txnid排序的订单 前两行无边界 来自InventoryLedger tcum 左外部联接清单tcumnext on tcum.Item=tcumnext.Item 和tcum.TxnID0 其中tcum.Item='103-02' tcum.cumq=0 按tcum.TxnID、tcum.TxnDate、tcum.Item、tcum.[tran type],tcum.Quantity分组 这几乎是正确的,除了我自连接到tcumnext的表没有与tcum比较的running/cumulative quantity列之外。我根本不知道如何制作一个可以与之比较的。有人能帮我吗?我真的很感激。在做了这么长时间的工作之后,如此接近真是令人兴奋和沮丧。

您可以在视图中使用with语句:

create view xxx as
    with <blah blah blah>
    select <your query>
这能解决您的问题吗?

您可以在视图中使用with语句:

create view xxx as
    with <blah blah blah>
    select <your query>

这是否解决了您的问题?

如果您已经在查询中使用with解决了聚合函数问题,那么您也可以使用视图来解决

下面是一个使用with子句的视图示例,该子句包含聚合函数:

那里的第一个邮局


希望这对您有所帮助=

如果您已经在查询中使用with解决了聚合函数问题,那么您也可以使用视图来解决

下面是一个使用with子句的视图示例,该子句包含聚合函数:

那里的第一个邮局


希望这有帮助=

确实如此。我不太记得昨天在处理这个问题时遇到了什么错误。您可能将with放在create视图之前。我过去也犯过这个错误,确实是这样。我不太记得昨天在处理这个问题时遇到了什么错误。您可能将with放在create视图之前。我过去也犯过这个错误。