我有一张类似
的表格| 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在该特定日期有更多条目,则可能是每个日期的第一个条目。
答案 0 :(得分:0)
你可以试试这个......
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'
但请记住,结果不会是第一种药物
答案 1 :(得分:0)
试试这个
选择*从(从DispensedDate desc的药房订单中选择*)作为OPNo =' 011650/16' group by DispensedDate;
如果您的DispensedDate类型为" DateTime"然后你可以尝试下面的
选择*从(从DispensedDate desc的药房订单中选择*)作为OPNo =' 011650/16' group by date_format(DispensedDate,'%m /%d /%Y');
让我知道这是否有效。