簡體   English   中英

從T-SQL轉換為Access查詢?

[英]Convert from T-SQL to Access query?

是否有方便的方法將此T-SQL查詢轉換為MS Access? ROUNDCOALESCE在Access中似乎不起作用。 我試圖讓自定義AVG字段在Access中運行,但始終會收到語法錯誤(缺少運算符)

SELECT TOP 50 [EmployeeID]
    ,[Last Name]
    ,[First Name]
    ,[HrsThisWk]

    --AVG HRs
    ,ROUND(
     coalesce((
        coalesce([1WksAgo],0) +
        coalesce([2WksAgo],0) +
        coalesce([3WksAgo],0) +
        coalesce([4WksAgo],0) +
        coalesce([5WksAgo],0)
      )/
      nullif(
        case when coalesce([1WksAgo],0)=0 then 0 else 1 end +
        case when coalesce([2WksAgo],0)=0 then 0 else 1 end +
        case when coalesce([3WksAgo],0)=0 then 0 else 1 end +
        case when coalesce([4WksAgo],0)=0 then 0 else 1 end +
        case when coalesce([5WksAgo],0)=0 then 0 else 1 end,
      0),0), 2)
      AS '--- AVG HRs ---'

    ,[1WksAgo]
    ,[2WksAgo]
    ,[3WksAgo]
    ,[4WksAgo]
    ,[5WksAgo]

FROM [CMHR].[dbo].[tbl52weekHours_20150527]
GROUP BY
    [EmployeeID]
    ,[Last Name]
    ,[First Name]
    ,[HrsThisWk]
    ,[1WksAgo]
    ,[2WksAgo]
    ,[3WksAgo]
    ,[4WksAgo]
    ,[5WksAgo]

在此處輸入圖片說明

使用NZ代替COALESCENULLIF ,並使用IIF代替CASE WHEN"..."代替[...]如下所示:

SELECT TOP(50) "EmployeeID"
    ,"Last Name"
    ,"First Name"
    ,"HrsThisWk"
    ,ROUND(
      NZ((
        NZ("1WksAgo",0) +
        NZ("2WksAgo",0) +
        NZ("3WksAgo",0) +
        NZ("4WksAgo",0) +
        NZ("5WksAgo",0)
      )/
      NZ(
        IIF(NZ("1WksAgo",0)=0, 0, 1) +
        IIF(NZ("2WksAgo",0)=0, 0, 1) +
        IIF(NZ("3WksAgo",0)=0, 0, 1) +
        IIF(NZ("4WksAgo",0)=0, 0, 1) +
        IIF(NZ("5WksAgo",0)=0, 0, 1),
      0),0), 2)
      AS "AVG HRs"

  ,"1WksAgo"
  ,"2WksAgo"
  ,"3WksAgo"
  ,"4WksAgo"
  ,"5WksAgo"

  FROM "tbl52weekHours_20150527"
  GROUP BY
   "EmployeeID"
  ,"Last Name"
  ,"First Name"
  ,"HrsThisWk"
  ,"1WksAgo"
  ,"2WksAgo"
  ,"3WksAgo"
  ,"4WksAgo"
  ,"5WksAgo"

您可以創建沒有TOP(50)查詢,然后將Top Values屬性設置為50

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM