我有办法使用查询或存储过程来执行此操作吗?
示例表:
ID TYPE TIMESTAMP QTY
P12345.1 A 2015-10-22 90
P12345.2 A 2015-10-22 0
P12001.1 A 2015-10-22 87
P12345.3 A 2015-10-23 92
P19000.1 B 2015-10-23 75
我想只选择ID中具有相同前缀的行(句点(。)之前的字符),并且它们具有相同的类型和相同的时间戳。
在上面的示例中,3行具有相同的前缀:P12345.1,P12345.2和P12345.3。但是,只有P12345.1和P12345.2具有相同的时间戳,因此我将选择P12345.1而不是P12345.2的行。
这应该是结果表:
ID TYPE TIMESTAMP QTY
P12345.1 A 2015-10-22 90
P12001.1 A 2015-10-22 87
P12345.3 A 2015-10-23 92
P19000.1 B 2015-10-23 75
我真的很难解决这个问题,我需要使用查询或存储过程来完成此任务。先感谢您。真的很感谢你的帮助。
答案 0 :(得分:1)
select ID, TYPE, TIMESTAMP, QTY
from tablename t1
where not exists (select 1 from tablename t2
where LEFT(t2.id, 6) = LEFT(t1.id, 6)
and t2.TIMESTAMP= t1.TIMESTAMP
and t2.id < t1.id)
答案 1 :(得分:1)
试试这个,
WebView
答案 2 :(得分:0)
试试这个:
select dt.*
from dataTable dt
where right(dt.id,1) = (select min(right(dt2.id,1)) from dataTable dt2
where left(dt.id,6) = left(dt2.id,6)
and dt.timestamp = dt2.timestamp)