我有一个练习管理软件,它将不同的活动存储在不同的表中。 下面列出。我试图完成的目标是找到具有到期余额,处于休眠状态或在过去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