簡體   English   中英

SQL Server子查詢

[英]SQL Server sub-query

我正在嘗試編寫一個查詢,以顯示在10天的時間內筆芯txn的數量和數量以及#個唯一的pt,但遇到了一些錯誤。 我想知道您是否可以對我的查詢出了什么問題提供一些見解。

我希望每個站點都能獲得#個唯一的患者,但相反,我每一行都會得到相同的數字...

我相信我在子查詢部分中遺漏了一些東西,但是我似乎無法弄清楚出什么問題了。 有什么想法嗎?

SELECT
    QB.vw_Pocket.PocketName As StationName,
    COUNT(*) AS [# of refill txns],
    (SELECT COUNT(DISTINCT QB.vw_PocketAccess.PatientKey) AS [# of pt]
     FROM QB.vw_PocketAccess
     WHERE QB.vw_PocketAccess.ClientKey = 10273 
       AND QB.vw_PocketAccess.TransactionDateTime BETWEEN CONVERT(DATE, DATEADD(day, -10, GetDate())) 
                                                      AND CONVERT(DATE, DATEADD(day, 0, GetDate()))) AS [#of Pt]
FROM
    QB.vw_PocketAccess
INNER JOIN
    QB.vw_Med ON QB.vw_Med.MedKey = QB.vw_PocketAccess.MedKey
INNER JOIN
    QB.vw_Pocket ON QB.vw_Pocket.PocketKey = QB.vw_PocketAccess.PocketKey
INNER JOIN
    QB.vw_TransactionType ON QB.vw_PocketAccess.TransactionTypeKey = QB.vw_TransactionType.TransactionTypeKey
WHERE
    QB.vw_PocketAccess.ClientKey = 10273 
    AND QB.vw_Med.ClientKey = 10273    
    AND QB.vw_Pocket.ClientKey = 10273 
    AND QB.vw_PocketAccess.TransactionDateTime BETWEEN CONVERT(DATE, DATEADD(day, -10, GetDate())) 
                                                   AND CONVERT(DATE, DATEADD(day, 0, GetDate())) 
    AND QB.vw_PocketAccess.TransactionTypeKey = 3
GROUP BY
    QB.vw_Pocket.PocketName

您需要關聯子查詢。 現在您的子查詢將只返回vw_PocketAccess表中的計數, vw_PocketAccess包含過濾器ClientKey = 10273TransactionDateTime BETWEEN CONVERT(DATE, DATEADD(day, -10, GetDate())) AND CONVERT(DATE, DATEADD(day, 0, GetDate()))

要使子查詢返回每個工作站,您需要將子查詢與外部查詢鏈接。 這樣的事情。

( 
 SELECT Count(DISTINCT qb.vw_pocketaccess.patientkey) AS [# of pt] 
 FROM   qb.vw_pocketaccess  
 WHERE  qb.vw_pocketaccess.station = station from outer tables --replace with the staion column
 AND    qb.vw_pocketaccess.clientkey = 10273 
 AND    qb.vw_pocketaccess.transactiondatetime BETWEEN CONVERT(DATE, Dateadd(day, -10, Getdate()))
                         AND    CONVERT(DATE, Dateadd(day, 0, Getdate()))
) as [#of Pt]

暫無
暫無

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

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