0

我从来没有这样做过,它只是为了在 asp.net 中的 gridview 控件上显示信息。

这是我所拥有的:

SELECT [VisitNumber], [Date], [DateFreq], [Weight], [Fat], [BloodPressure], [Pulse], [Total], [Discount], [NetTotal], [AmountPaid], [PaymentStatus], [TypeOfPayment], [Comments] FROM [tblVisits] WHERE ([PatientID] = '16') 

SELECT [DatePrescribed], [AdditionalSupply], [Medication], [Dose], [Quantity], [Type], [Description], [Expires], [Lot] FROM [tblMedications] WHERE (([PatientID] = '16') AND ([DatePrescribed] = (select top 1 dateprescribed from tblMedications where ([PatientID] = '16') order by DatePrescribed desc))) ORDER BY [DatePrescribed] DESC

有没有办法将它们结合起来,也许是对 PatientID 的完全加入?我对sql不是很好,所以任何想法都会受到赞赏。

4

2 回答 2

0

似乎您想要某种 SQL join by patientID

  • 如果您只想包含两个表中都有 ID 的记录,请使用inner join.
  • 如果您想要所有记录,null其中一个 ID 在一个表中但另一个表中没有 s,请使用full outer join.
  • 如果您想要一个表中的所有记录,null而另一个表没有该 ID,请使用 sleftright outer join

您似乎很可能需要一个inner join,如下所示:

select v.VisitNumber, v.Date, ..., v.Comments, m.DatePrescribed, m.AdditionalSupply...
from tblVisits as v inner join tblMedication as m
on v.PatientID = m.PatientID;

来源

于 2013-05-07T23:53:53.770 回答
0

根据您的评论,您正在尝试根据就诊当天开具的药物将药物加入就诊中。在这种情况下,您需要加入该信息:

SELECT [tblVisits].[VisitNumber], [tblVisits].[Date], ..., [tblVisits].[Comments],
       [tblMedications].[DatePrescribed], ..., [tblMedications].[Expires], [tblMedications].[Lot]
FROM [tblVisits]
JOIN [tblMedications] ON [tblVisits].[PatientID] = [tblMedications].[PatientID]
                     AND [tblVisits].[Date] = [tblMedications].[DatePrescribed]
WHERE [tblVisits].[PatientID] = '16'
ORDER BY [tblVisits].[Date]

我想提一下,我认为说这两个表“不相关”并不是最好的表达方式。根据日期,它们确实对您的应用程序具有有意义的关系;它只是以外键的形式不明确,因为它不是基于键的关系。

于 2013-05-08T00:47:53.833 回答