Mysql 在同一日期返回包含多个条目的一条记录
我有一张看起来像的桌子Mysql 在同一日期返回包含多个条目的一条记录,mysql,Mysql,我有一张看起来像的桌子 | OPDNo |DispensedDate | Drugname | CreatedBy| | 011650/16 | 6/29/2016 |folic acid | admin | | 011650/16 | 6/29/2016 |multivite | admin | | 011650/16 | 6/21/2016 |fersolate | asah | | 011650/16 | 6/21/2016
| OPDNo |DispensedDate | Drugname | CreatedBy|
| 011650/16 | 6/29/2016 |folic acid | admin |
| 011650/16 | 6/29/2016 |multivite | admin |
| 011650/16 | 6/21/2016 |fersolate | asah |
| 011650/16 | 6/21/2016 |amoxicyllin| eantwi |
| 025343/13 | 5/23/2016 |aspirin | emelia |
当我查询时,我希望记录选择是这样的
select * from dispensary where OPNo='011650/16'
| OPDNo |DispensedDate | DrugName | CreatedBy|
| 011650/16 | 6/29/2016 |folic acid| admin |
| 011650/16 | 6/21/2016 |fersolate | asah |
也就是说,我只希望在特定日期的每个OPNo都有一条记录。如果OPDNo在同一日期有一个或多个条目,则查询应仅返回条目。如果OPDNo在该特定日期有更多条目,则可能是每个日期的第一个条目。您可以尝试以下操作
select * from dispensary do
where do.Drugname in (select max(Drugname) from dispensary di
where di.OPDNo = do.OPDNo
and di.DispensedDate = do.DispensedDate)
and do.OPDNo = '011650/16'
但请记住,结果不会是第一种药物试试这个
按DispensedDate desc从药房医嘱中选择*从中选择*,其中OPNo='011650/16'
按剂量分组
如果您的DispencedDate类型为DateTime,则可以在下面进行尝试
按DispensedDate desc从药房医嘱中选择*从中选择*,其中OPNo='011650/16'
按日期分组\u格式分配日期,'%m/%d/%Y'
让我知道这是否有效。从OPNo='011650/16'?存储日期为日期的药房选择不同的分发日期。然后回到我们这里来。这就是我在草莓镇所做的。DispencedDate列的数据类型为date。该列中的所有值都是这样存储的。请根据您的问题进行修改。假设一名患者在本月每天至少收到2种药物,我需要一个查询,该查询将为该患者每天只选择一种药物,而不考虑每天分配的药物数量。这无关紧要,如果它返回一条记录,是否可以将此查询与具有OPDNo列的其他表进行内部联接。出现错误,Order By子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP或FOR XML。否则,可以在视图内部放置此顺序。