我有一個練習管理軟件,它將不同的活動存儲在不同的表中。 下面列出。我試圖完成的目標是找到具有到期餘額,處於休眠狀態或在過去30天內沒有任何活動的帳戶。活動類型包括索賠提交,付款,&分類帳註釋。我用exel中的五個查詢和Vlookup函數實現了這一點。不過,我想用一個sql查詢乾淨地做到這一點。可能嗎。以下是我目前使用的五個查詢。SQL查找最近45天內沒有收集活動的帳戶
SELECT xrxTrnLgr.PatId, xrxTrnLgr.Balance,
FROM xrxTrnLgr
WHERE (xrxTrnLgr.Balance>$.01)
ORDER BY xrxTrnLgr.PatId
該查詢得到誰擁有平衡
SELECT xrxPat.PatId, xrxPat.Coverage, xrxPat.DctId, xrxPat.EntryDate
FROM xrxPat
WHERE (xrxPat.EntryDate>{ts '2008-01-01 00:00:00'})
ORDER BY xrxPat.PatId
該查詢得到醫生編號
SELECT RecNo, xrxPatNotes.PatId, xrxPatNotes.NoteDate, xrxPatNotes.UserId
FROM xrxPatNotes INNER JOIN
(SELECT xrxPatNotes.PatId, Max (NoteDate) as LastDate
FROM xrxPatNotes
GROUP BY PatId) as B
ON xrxPatNotes.PatId = B.PatId
AND xrxPatNotes.NoteDate = B.LastDate
該查詢獲得最新的總帳注
患者SELECT xrxTrnicf.PatId, xrxTrnicf.UserId ,xrxTrnicf.PostDate
FROM xrxTrnicf INNER JOIN
(SELECT xrxTrnicf.PatId, Max (PostDate) as LastDate
FROM xrxTrnicf
GROUP BY PatId) as B
ON xrxTrnicf.PatId = B.PatId
AND xrxTrnicf.PostDate = B.LastDat
此查詢是獲取最多最近索賠提交
SELECT xrxTrnpay.PatId, xrxTrnpay.UserId ,xrxTrnpay.PostDate
FROM xrxTrnpay INNER JOIN
(SELECT xrxTrnpay.PatId, Max (PostDate) as LastDate
FROM xrxTrnpay
GROUP BY PatId) as B
ON xrxTrnpay.PatId = B.PatId
AND xrxTrnpay.PostDate = B.LastDate
該查詢獲取最新的付款
在EXEL我那麼VLOOKUP所有值,從今天減去。然後我創建一個列來獲取最小值。
如果有人能夠幫助我至少將sql查詢合併到一個查詢中,我將不勝感激。
謝謝
你能告訴我們你的表定義爲'CREATE TABLE'語句嗎? – 2012-03-21 00:47:00
我道歉,我不清楚如何做到這一點。正如我所說的,當談到SQL時,我真的是一個新手,並且從我在本網站上閱讀過的東西中將這個解決方案拼湊在一起。如果有幫助,數據將從sql server 2008中的數據庫中提取出來,並且表名爲1. xrxtrnpay 2. xrxtrnicf 3. xrxpat 4.xrxtrnlgr 5. xrxpatnotes。我不確定這是你在找什麼,所以我提前道歉,因爲我缺乏知識。 – 2012-03-21 00:54:26
那麼,基於我所能看到的,我會說你遇到不同的查詢,因爲他們返回不同的/不同類型的列。如果你可以有相同的列返回,那麼一個聯盟將爲您的目的服務 – 2012-03-21 01:01:43