Sql 在这个地方数日子 我正在研究水晶报告席,我的问题在我的报告中,我必须把病人的日子记录在一个地方,他们可以得到任何次数的转移,或者他们甚至一次也没有得到转移。因此,每次他们从入院转到出院时,我都想数一数病人在那个地方呆了多少天 PatID Admission Discharge Place TransferPlace TransferDate 121 05\06\2013 06\01\2013 102 105 05\10\2013 121 105 101 05\20\2013 121 101 108 05\25\2013

Sql 在这个地方数日子 我正在研究水晶报告席,我的问题在我的报告中,我必须把病人的日子记录在一个地方,他们可以得到任何次数的转移,或者他们甚至一次也没有得到转移。因此,每次他们从入院转到出院时,我都想数一数病人在那个地方呆了多少天 PatID Admission Discharge Place TransferPlace TransferDate 121 05\06\2013 06\01\2013 102 105 05\10\2013 121 105 101 05\20\2013 121 101 108 05\25\2013,sql,crystal-reports,Sql,Crystal Reports,在这里,我刚刚创建了一个数据,患者于2013年10月5日第一次从102转移到105,这意味着他自入院(4天)以来一直在102岁,而在105岁时,他已经10天了。 我希望它应该是清楚的。**Try函数它将返回日期差以获取您使用DateDiff函数的日期差。如果您希望获得日期之间的天数,可以使用: DateDiff(day, {Admission.Date}, {Transfer.Date}) {acmission.Date}和{Transfer.Date}是您将在报告中使用的日期字段 编辑: 所

在这里,我刚刚创建了一个数据,患者于2013年10月5日第一次从102转移到105,这意味着他自入院(4天)以来一直在102岁,而在105岁时,他已经10天了。
我希望它应该是清楚的。**

Try函数它将返回日期差

以获取您使用DateDiff函数的日期差。如果您希望获得日期之间的天数,可以使用:

DateDiff(day, {Admission.Date}, {Transfer.Date})
{acmission.Date}和{Transfer.Date}是您将在报告中使用的日期字段

编辑:

所以我认为你可以使用Crystal中的前一个函数来完成这项工作。尝试以下方法:

if isNull(previous({Transfer.Date}) then
DateDiff(day, {Admission.Date}, {Transfer.Date}) else
DateDiff(day, previous({Transfer.Date}), {Transfer.Date})

您也可以通过使用下一个函数使用另一种方法。

Datediff将不起作用。我尝试了我想要的位置和天数。这并不是摆出餐桌的样子。我必须编辑它。我知道你想说什么,但并不像你说的那么容易。对于日期差异,我需要2个日期栏,如果他们是允许转学或转学出院,这很容易,但在两次转学之间,我需要两个栏作为转学日期,并显示该日期以及该人员当时所在的地点。对于每一位患者来说,这是不同的,有人没有转移,有人有5个以上。在C#中,我们可以执行循环,并在crystal中尝试它。在看到表的更新后,您必须使用前面的函数来接近它。对于第一行数据,您将使用入学和转学日期进行计算(参见原始答案)。对于所有其他数据行,计算将是DateDiff(日期,前一个{TransferDate},{TransferDate})。诀窍是使用if/else语句检查是否有以前的传输日期。这有意义吗?在我尝试下一个函数之前,然后执行if/else语句,但没有检查它们是否有传输日期。我将如何显示他在那里的位置,直到今天和那几天。请参阅编辑我的答案,并让我知道这是否有效。这并不是对所有人都有效。但我想我必须弄清楚。谢谢