Solved

SQL Get MIN row for each record

Posted on 2011-09-23
7
206 Views
Last Modified: 2012-06-27
Hello I have the following table data(posed in the CODE sec.  

wondering how to get the row data with the min date from each OPID.  If the 2nd Window date is less than 1st Window date then the 2nd Window should be read.    

get the min date goes something like...
Select distinct min DATE, OPID, Window
from TABLE

But the problem is if the 2nd window is the lesser date of the windows.
Accnt	OPID	DATE	Window 
34	1	9/22/11 12:32 PM	1st WINDOW
34	1	9/22/11 12:33 PM	2nd WINDOW
12	2	9/21/11 11:02 AM	1st WINDOW
12	2	9/21/11 11:01 AM	2nd Window
455	1	9/22/11 1:09pm	1st WINDOW

Open in new window

0
Comment
Question by:TechMonster
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 55

Expert Comment

by:Huseyin KAHRAMAN
ID: 36590001
try:

select * from (
select *, row_number() over (partition by opid order by window) rn
from myTable ) x
where rn=1
0
 
LVL 55

Accepted Solution

by:
Huseyin KAHRAMAN earned 500 total points
ID: 36590009
oops, we should sue [DATE]

select * from (
select *, row_number() over (partition by opid order by [DATE]) rn
from myTable ) x
where rn=1
0
 

Author Comment

by:TechMonster
ID: 36590092
i think that got it!  Have to test it out a few more times though...thanks.
0
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 

Author Comment

by:TechMonster
ID: 36590112
Well it gets the min from all DATes..but I have to get the row by min dateTime for each day.
0
 
LVL 55

Expert Comment

by:Huseyin KAHRAMAN
ID: 36590151
then you should partition by day & opid

easy way is to get date part

select floor(cast(GETDATE() as float))

select * from (
select *, row_number() over (partition by opid,  floor(cast([DATE] as float)) order by [DATE]) rn
from myTable ) x
where rn=1
0
 
LVL 55

Expert Comment

by:Huseyin KAHRAMAN
ID: 36590172
or use CONVERT(varchar, getdate(), 101) -- to get rid of time part and group by date only like : 09/23/2011

select * from (
select *, row_number() over (partition by opid, CONVERT(varchar, getdate(), 101) order by [DATE]) rn
from myTable ) x
where rn=1
0
 

Author Comment

by:TechMonster
ID: 36591917
Perfect..thanks again
0

Featured Post

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: DanRollins
This article describes a JavaScript program that creates a maze made of hexagonal cells.  In Part 2 (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_7850-Hex-Maze-Part-2.html), we'll extend the program by adding a depth-…
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question