English 中文(简体)
召集病人和进行重复访问
原标题:Grouping patients and showing repeat visits

我的表格称为<编码>Visits:

ID(PKey,Int)
PatiendID(int),
DoctorID(int),
ExpectedDate(date),
ActualDate(date),

我怎么能写一个问,对于每个病人来说,重复访问的次数会回来。

如果访问少于前一年的一半,则认为访问会重复进行。

换言之,我需要每个病人在(<>上>访问-6个月)和最后一次访问(不包括最后一次访问)之间找到访问次数。 能否在没有治疗者的情况下撰写询问?

And other question. I have Table Patients ID(int, PKey),Name,Pasport,State Is it possible for each client from here find the same information? Or it is better union the query below and all clients that are not in visits table?

最佳回答

In other words I need for each patient find number of visits between (last visit-6 months) and last visit excluding last visit.

WITH CTE AS
(
    SELECT PatientID, MAX(ActualDate) AS LastVisit
    FROM Visits
    GROUP BY PatientID
)
SELECT CTE.PatientID, COUNT(1)-1 AS RepeatVisits
FROM CTE INNER JOIN Visits ON CTE.PatientID = Visits.PatientID
WHERE ActualDate BETWEEN DATEADD(month, -6, LastVisit) AND LastVisit
GROUP BY CTE.PatientId

这将按病人分类,在上一次访问之前六个月内进行所有访问。 它将给你(总数)减去(不包括最后一次访问)。

完整的实例:

第二阶段见:

WITH CTE AS
(
    SELECT Patients.PatientID, Patients.Name, MAX(ActualDate) AS LastVisit
    FROM Patients LEFT JOIN Visits ON #patient.PatientID = Visits.PatientID
    GROUP BY Patients.PatientID, Patients.Name
)
SELECT CTE.PatientID, CTE.Name, COUNT(1)-1 AS RepeatVisits
FROM CTE LEFT JOIN Visits ON CTE.PatientID = Visits.PatientID
                          AND Visits.ActualDate BETWEEN DATEADD(month, -6, LastVisit) AND LastVisit
GROUP BY CTE.PatientId, CTE.Name
ORDER BY PatientID;
问题回答

暂无回答




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签