首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从聚合的自联接创建视图

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

Stack Overflow用户
提问于 2012-07-25 01:15:39
回答 2查看 155关注 0票数 1

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

我从一个库存账本开始,它只记录单个交易。我们的目标是建立一个更全面的账本,它将保持运行库存总额,运行销售总额,如果一个项目脱销,它将跟踪天数,直到重新供应。

最初的查询使用了With ...语句在对聚合列执行自联接之前定义表及其聚合。不幸的是,我不能做同样的事情来创建视图,所以我需要找到一种方法来以不同的方式创建这些聚合,以便仍然允许我在它们上自连接以保持我的总计的顺序。

到目前为止,我是如何重新组织我的语句的:

代码语言:javascript
复制
Create View 'QLedger' as
Select tcum.txnid,
        tcum.Item, 
        tcum.TxnDate, 
        tcum.[Tran Type], 
        tcum.Quantity,
        tcum.cumq 

 from (select *, SUM( Quantity ) 
            OVER (PARTITION BY InventoryLedger.Item 
            ORDER BY InventoryLedger.TxnID
            ROWS UNBOUNDED PRECEDING ) cumq, 
            abs( 
                sum( 
                    case when [Tran Type] = 'Shipping' 
                    or [Tran Type] = 'Customer Return' 
                    then Quantity end) 
                    over (partition by qryrptInventoryLedger.item 
                            order by InventoryLedger.txnid 
                                    rows unbounded preceding)) LifeSales
            from InventoryLedger) tcum 
 left outer join InventoryLedger tcumnext
 on tcum.Item = tcumnext.Item
 and tcum.TxnID < tcumnext.TxnID 
 and
 tcum.cumq = 0 and tcumnext.cumq >0
 where tcum.Item = '103-02'
 and tcum.cumq = 0
 group by tcum.TxnID, tcum.TxnDate, tcum.Item, tcum.[tran type], tcum.Quantity

这几乎是正确的,除了我要自连接到的表(tcumnext)没有要与tcum进行比较的运行/累积数量列。我根本想不出怎么做才能与之相比。有人能帮我吗?我真的很感激。这是令人兴奋和沮丧的是,在这么长时间的工作之后,如此之近。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-25 01:23:53

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

代码语言:javascript
复制
create view xxx as
    with <blah blah blah>
    select <your query>

这解决了你的问题吗?

票数 0
EN

Stack Overflow用户

发布于 2012-07-25 01:39:15

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

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

http://social.msdn.microsoft.com/Forums/sk/sqlgetstarted/thread/302040c6-6a1b-4f99-8a1d-84bb196cb5e6

第一个帖子。

希望这会有帮助=)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11635971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档