Sql server 开始日期和结束日期之间的报告显示

Sql server 开始日期和结束日期之间的报告显示,sql-server,Sql Server,你好, 我写的报告接受了4个参数,但不确定如何在参数的@startdate和@enddate之间显示结果。任何帮助都将不胜感激。首先:将双引号“更改为单引号”或括号[] Select distinct DMA.EmpID as "Employe ID:", DMA.LASTNAME as "Last Name:", DMA.FirstName as "First Name:", SM.CDU_Academic_Rank_1of2 as "CDU Rank",

你好,


我写的报告接受了4个参数,但不确定如何在参数的@startdate和@enddate之间显示结果。任何帮助都将不胜感激。

首先:将双引号
更改为单引号
或括号
[]

Select distinct 
    DMA.EmpID as "Employe ID:", 
    DMA.LASTNAME as "Last Name:",
    DMA.FirstName as "First Name:",
    SM.CDU_Academic_Rank_1of2 as "CDU Rank",
    DMA.AnnualPay as "Salary All:", 
    DMA.Class as "Emp Class",
    DMA.[Department Name] as "Department:",
    DMA.Activity as "Account:",
    DMA.Effort_percentage/100 as "Effort", 
    DMA.Activitypay as "Amount", 
    DMA.ActivityStart as "Start Date",
    DMA.ActivityEnd as "End Date", 
    SM.COM,
    SM.COSH, 
    SM.SON, 
    KWAS.ActivityPayInactive
from 
    dbo.DMActivitysalary AS DMA 
    inner JOIN vw_KW_Shay_Main AS SM ON DMA.EmpID = SM.Employee_ID
    inner join vw_KW_Activity_Salary_ODBC as KWAS on DMA.EmpID = KWAS.EmpID
where 
    DMA.[Department Name] in (@Dept) 
    AND DMA.[Effort_Percentage] in (@Effort) 
    AND DMA.Activity in (@Account) 
    AND (KWAS.ActivityPayInactive = 'NO') 
    AND where DMA.EmpID between DMA.ActivityStart in (@StartDate) 
    AND DMA.ActivityEnd in (@EndDate)
order by 
    DMA.ActivityEnd
那么,你的句子中有一个错误:

DMA.EmpID as "Employe ID:" -->  DMA.EmpID as [Employe ID:]
无法使用其中的两次,请按更改

AND where DMA.EmpID between DMA.ActivityStart in (@StartDate) 
AND DMA.ActivityEnd in (@EndDate)

在和DMA.ActivityStart和DMA.ActivityEnd之间有一个
语法,您可以使用该语法,但这会带来其他问题,例如:“ActivityEnd是否可以有空值”。欢迎使用堆栈溢出!您可以首先学习并创建一个示例。这使我们更容易帮助您。
AND DMA.ActivityStart >= (@StartDate) 
AND DMA.ActivityEnd < (@EndDate)
'2017-01-01 00:00:01' > '2017-01-01'