在同一日期返回包含多个条目的一条记录

时间:2016-06-29 04:23:33

标签: 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    |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在该特定日期有更多条目,则可能是每个日期的第一个条目。

2 个答案:

答案 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');

让我知道这是否有效。