小编SAS*_*SMC的帖子

#Table 有歧义

我收到一个错误,指出 #Plans 不明确。当我通过自连接将一个表加入到自己的表中时会发生这种情况,但不知道为什么。这是导致错误的代码:

Alter Table #Plans
Add SecondPlanDate date

Update #Plans
Set 
    SecondPlanDate = Min (P2.PlanPurchaseDate) Over (Partition By P1.PatientID, P1.PlanPurchaseDate)
From
#Plans as P1
Inner Join
#Plans as P2
on
P1.PatientID = P2.PatientID
Where
P2.PlanPurchaseDate > P1.PlanPurchaseDate
;

Select
*
From
#Plans  
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激。

谢谢,

temp-tables self-join sql-server-2008

5
推荐指数
1
解决办法
4863
查看次数

为什么在Where子句中使用Case

我知道这个问题有各种变化,但找不到能满足我要求的东西.

我继承了一个数据库,并从另一个不再在图片中的程序员那里得到报告.

其中一个查询使用此代码:

Select
     b.HospitalMasterID
    ,b.TxnSite
    ,b.PatientID
    ,b.TxnDate as KeptDate
From
    Billing as b
    Inner Join Patient as p
        on b.HospitalMasterID = p.HospitalMasterID
        and b.PatientID = p.PatientID
Where
    b._IsServOrItem=1
    and b.TxnDate >= '20131001'
    and (Case
            When b.ExtendedAmount > 0 Then 1
            When (Not(p.PlanCode is null)) and (b.listAmount >0) then 1
        End = 1)
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我得到了返回的900,000行.如果我删除Case语句,我会返回超过一百万行.

有人可以解释为什么会这样吗?案件陈述到底是做什么的?有没有更好的方法来完成同样的事情.我真的不喜欢这个陈述,因为缺乏结构,整个报表查询很难阅读.

Sql的版本是T-Sql 2012.

谢谢,

sql-server case where

2
推荐指数
1
解决办法
87
查看次数

SSRS在计算字段上的聚合

我试图在SSRS中的计算字段上执行聚合,并收到以下错误:

[rsAggregateReportItemInBody] textrun'Textbox43.Paragraphs [0] .TextRuns [0]'的Value表达式在报表项上使用聚合函数.聚合函数只能用于页眉和页脚中包含的报表项

这是我试图使用的公式:

=Sum(ReportItems!PlanPurchPrice.Value, "Select_UCPUtilization")
Run Code Online (Sandbox Code Playgroud)

在本案例中,PlanPurcPrice也是一个表达式:

=First(Fields!PawPlanPurchPrice.Value, "Select_UCPUtilization")
Run Code Online (Sandbox Code Playgroud)

对此有任何建议将不胜感激.

aggregate-functions ssrs-2008

2
推荐指数
1
解决办法
8916
查看次数

为什么会有人使用它?

我在我试图解决的SQL报告中遇到了这行代码.有人能告诉我这是什么目的.

DATEADD(dd, - DATEDIFF(dd, d.TxnDateTime, 1), 1) As TxnDate
Run Code Online (Sandbox Code Playgroud)

对我来说,它似乎会取消自己.

sql t-sql datediff dateadd sql-server-2008

1
推荐指数
2
解决办法
118
查看次数

Oracle替代工作日

早上好,

我试图为Oracle寻找Weekday的替代方法,由于某些原因,我们的版本无法识别Weekday函数。它不断抛出错误,

WeekDay:无效的标识符。

我正在尝试在Where语句中使用它:

Where
Weekday(OR_Log.Surgery_DAte) not in (1,7)
Run Code Online (Sandbox Code Playgroud)

清除任何周六或周日的手术。这是将代码从Teradata更新到Oracle。

Oracle V.12C

任何帮助,将不胜感激。

sql oracle date-formatting

0
推荐指数
1
解决办法
53
查看次数