首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在多个SELECT和不同条件下使用SQL表别名?

如何在多个SELECT和不同条件下使用SQL表别名?
EN

Stack Overflow用户
提问于 2011-09-23 15:02:34
回答 1查看 172关注 0票数 0

我想为其生成ssrs报告,我需要选择4个值PreviousNAV、TodaysNAV、@NetChange、@ want索引

代码语言:javascript
运行
复制
CREATE PROCEDURE [dbo].[Progreereport]
(
@EndDate DATETIME,
@ComparePeriod VARCHAR(10),
@PortfolioId VARCHAR(50) = '6'
)
AS
BEGIN

DECLARE @StartDate DATETIME =
    CASE
        WHEN @ComparePeriod = 'Daily' THEN dbo.DateUtility_MakeBusinessDay(DATEADD(DAY, -1, @EndDate), 'LessThanOrEqualTo')
        WHEN @ComparePeriod = 'Weekly' THEN dbo.DateUtility_GetRelativeDate(@EndDate, 'LessThan', 'End', 'Week', 1)
        WHEN @ComparePeriod = 'MTD' THEN dbo.DateUtility_GetRelativeDate(@EndDate, 'LessThan', 'End', 'Month', 1)
        WHEN @ComparePeriod = 'QTD' THEN dbo.DateUtility_GetRelativeDate(@EndDate, 'LessThan', 'End', 'Quarter', 1)
        WHEN @ComparePeriod = 'YTD' THEN dbo.DateUtility_GetRelativeDate(@EndDate, 'LessThan', 'End', 'Year', 1)
        WHEN @ComparePeriod = 'LTM' THEN DATEADD(MONTH, -12, @EndDate)
        WHEN @ComparePeriod = 'LTD' THEN CAST(Fireball_Configuration.dbo.GetConfigurationValue('Fireball', 'Concerto Credit Opportunity Master Fund I - Inception Date') AS DATETIME)
    END

  DECLARE @PreviousNAV DECIMAL(18,4)
  DECLARE @TodaysNAV DECIMAL(18,4)
  DECLARE @NetChange DECIMAL(18,4)
  DECLARE @BAMLIndex DECIMAL(18,4)

  SELECT ISNULL(@PreviousNAV,0) PreviousNAV 
  FROM Fireball..NAV
  WHERE Date = @StartDate and PortfolioId = @PortfolioId 

  SELECT ISNULL(@TodaysNAV,0) TodaysNAV 
  FROM Fireball..NAV
  WHERE Date = @EndDate and PortfolioId = @PortfolioId 

  SELECT @NetChange = (@TodaysNAV - @PreviousNAV ) 

  SELECT @BAMLIndex  = @NetChange / @TodaysNAV

  END
  GO

我需要以上四个值来生成报告,但帮助我把它放到表别名中,这样我就可以很容易地使用它…

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-23 15:12:11

您的意思是要返回表中的项吗?

在当前脚本之后执行此操作:

代码语言:javascript
运行
复制
DECLARE @myData TABLE (
   PreviousNAV DECIMAL(18,4),
   TodaysNAV DECIMAL(18,4),
   NetChange DECIMAL(18,4), 
   BAMLIndex DECIMAL(18,4) 
)

INSERT @myData
VALUES (@PreviousNAV, @TodaysNav, @NetChange, @BAMLIndex)

SELECT * FROM @myData

要返回这四个值的单个列,请在存储过程的末尾添加以下内容:

代码语言:javascript
运行
复制
  SELECT @PreviousNAV as [Data] UNION
  DECLARE @TodaysNAV UNION
  DECLARE @NetChange UNION
  DECLARE @BAMLIndex 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7525392

复制
相关文章

相似问题

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