1

そのクエリに名前付きクエリを書きました。request_id、createddate、confirmeddate、reporteddate、sitename、ticketstatusname などの属性があります。

request_id のチケットステータス名、つまりオープンまたはクローズを知りたいです。特定の日付について ReportedDate='2011-07-31 00:00:00.000' として日付をフィルター処理しました。各サイトで開いている request_id の数と閉じている数を知りたいです。たとえば、sitename='BOUZ' を含む25 の request_id がオープンで、225 の request_id がクローズされています。同じクエリをコピーして ssas キューブに貼り付け、sitename、ticketstatusname をキューブ ブラウザにドラッグ アンド ドロップしたときに処理しましたが、カウントは正しく行われていますが、ticketstatusname は間違っています。つまり、実際に閉じられたチケットが開いた状態で表示されます。ssas キューブ内の request)id のステータスが間違っている理由を教えてください。以下は、名前付きクエリです。

SELECT *
FROM
  (SELECT d.Short_sitename AS Sitename,
          f.Request_ID,
          dt3.FullDateAlternateKey AS CreatedDate,
          dt2.FullDateAlternateKey AS ConfirmedDate,
          dt1.FullDateAlternateKey AS ReportedDate,
          CASE
              WHEN (dt2.FullDateAlternateKey IS NULL)
                   OR (dt1.FullDateAlternateKey<dt2.FullDateAlternateKey) THEN 'Open'
              ELSE 'Closed'
          END AS TicketStatusName,
   FROM FactTicket AS f
   LEFT OUTER JOIN DimTime AS dt3 ON dt3.TimeKey = f.Create_DateKey
   LEFT OUTER JOIN DimTime AS dt2 ON dt2.TimeKey = f.Confirmed_DateKey
   LEFT OUTER JOIN DimSite AS d ON d.Site_ID=f.Site_ID
   LEFT OUTER JOIN DimTime AS dt1 ON dt1.FullDateAlternateKey BETWEEN dt3.FullDateAlternateKey AND DATEADD(d, - 1, DATEADD(mm, DATEDIFF(m, 0, ISNULL(dt2.FullDateAlternateKey, GETDATE())) + (12 - MONTH(ISNULL(dt2.FullDateAlternateKey, GETDATE())) + 1), 0))
   WHERE (dt1.FullDateAlternateKey = DATEADD(d, - 1, DATEADD(mm, DATEDIFF(m, 0, dt1.FullDateAlternateKey) + 1, 0)))
     AND (f.Type_ID1 IS NOT NULL)
     AND (f.Type_ID2 IS NOT NULL)
     AND (f.Type_ID3 IS NOT NULL) )A
WHERE ReportedDate='2011-07-31 00:00:00.000'
  AND sitename='BOUZ'
4

0 に答える 0