Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2010-05-26 : 05:26:21
|
hi query is like thisSELECT MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME FROM (SELECT TOP 100 MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME FROM (SELECT TOP 100 MODULE_ID, MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME FROM (SELECT TOP 999999999 MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME FROM (SELECT AML.MODULE_ID,MET.MODULE_NAME,AML.EVENT_ID,AEL.EVENT_NAME, ltrim(rtrim(CONVERT(VARCHAR,AML.DATE_TIME,105))) + ' ' + rtrim(ltrim(REPLACE(REPLACE(substring(CONVERT(VARCHAR,AML.DATE_TIME,9),13,14),':000AM',' AM'),':000PM',' PM'))) AS DATE_TIME, AML.USER_LOGIN,AML.PATIENT_ID,AML.REFERENCE_ID,AML.USER_IP_ADDRESS,AML.TRAN_STATUS,USERS.USER_NAME FROM EMRAuditTrial AML LEFT OUTER JOIN EMRAuditEventLkup AEL ON AEL.EVENT_ID = AML.EVENT_ID LEFT OUTER JOIN EMRAuditModuleLkup MET ON MET.MODULE_ID = AML.MODULE_ID LEFT OUTER JOIN USERS ON AML.USER_LOGIN = USERS.USER_LOGIN WHERE AML.USER_LOGIN IN (SELECT DISTINCT USER_LOGIN FROM EMRUSERROLELOCATION WHERE LOCATION_ID = 1831501 ) AND AEL.EVENT_TYPE IN (0,2) AND MET.MODULE_TYPE IN (0,2)) X ORDER BY DATE_TIME ASC ) AS NEWTBL1 ORDER BY DATE_TIME DESC ) AS NEWTBL2 ) ZORDER BY DATE_TIME ASC here date_time column is not sorting data properly like it is sorting data as 10-05-2010 4:48:16 PM13-05-2010 11:57:24 AM17-05-2010 6:34:29 PM22-04-2010 6:47:08 PM30-04-2010 5:07:35 PMwhat's wrong with query? |
|
|
webfred
Master Smack Fu Yak Hacker
8781 Posts |
Posted - 2010-05-26 : 05:52:33
|
Since your DATE_TIME is converted to varchar the sort cannot work in another way.Try ORDER BY convert(datetime,DATE_TIME) No, you're never too old to Yak'n'Roll if you're too young to die. |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2010-05-26 : 06:06:44
|
| Msg 242, Level 16, State 3, Line 1The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.where i changed ORDER BY DATE_TIME to ORDER BY convert(datetime,DATE_TIME) |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-26 : 06:07:56
|
quote: Originally posted by webfred Since your DATE_TIME is converted to varchar the sort cannot work in another way.Try ORDER BY convert(datetime,DATE_TIME) No, you're never too old to Yak'n'Roll if you're too young to die.
It should be applied to all derived tablesMadhivananFailing to plan is Planning to fail |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-26 : 06:10:11
|
What happens when you try this?SELECT MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME1FROM (SELECT TOP 100 MODULE_ID,MODULE_NAME,DATE_TIME FROM (SELECT TOP 100 MODULE_ID, MODULE_NAME,DATE_TIME FROM (SELECT TOP 999999999 MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME FROM (SELECT AML.MODULE_ID,MET.MODULE_NAME,AML.EVENT_ID,AEL.EVENT_NAME, ltrim(rtrim(CONVERT(VARCHAR,AML.DATE_TIME,105))) + ' ' + rtrim(ltrim(REPLACE(REPLACE(substring(CONVERT(VARCHAR,AML.DATE_TIME,9),13,14),':000AM',' AM'),':000PM',' PM'))) AS DATE_TIME, AML.USER_LOGIN,AML.PATIENT_ID,AML.REFERENCE_ID,AML.USER_IP_ADDRESS,AML.TRAN_STATUS,USERS.USER_NAME FROM EMRAuditTrial AML LEFT OUTER JOIN EMRAuditEventLkup AEL ON AEL.EVENT_ID = AML.EVENT_ID LEFT OUTER JOIN EMRAuditModuleLkup MET ON MET.MODULE_ID = AML.MODULE_ID LEFT OUTER JOIN USERS ON AML.USER_LOGIN = USERS.USER_LOGIN WHERE AML.USER_LOGIN IN (SELECT DISTINCT USER_LOGIN FROM EMRUSERROLELOCATION WHERE LOCATION_ID = 1831501 ) AND AEL.EVENT_TYPE IN (0,2) AND MET.MODULE_TYPE IN (0,2)) X ORDER BY DATE_TIME ASC ) AS NEWTBL1 ORDER BY DATE_TIME DESC ) AS NEWTBL2 ) ZORDER BY DATE_TIME ASC MadhivananFailing to plan is Planning to fail |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2010-05-26 : 06:16:02
|
| here date_time column is not sorting data properly like it is sorting data as DATA COMING LIKE THIS10-05-2010 4:48:16 PM13-05-2010 11:57:24 AM17-05-2010 6:34:29 PM22-04-2010 6:47:08 PM30-04-2010 5:07:35 PM |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-26 : 06:46:59
|
| [code]SELECT MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME1FROM (SELECT TOP 100 MODULE_ID,MODULE_NAME,DATE_TIME FROM (SELECT TOP 100 MODULE_ID, MODULE_NAME,DATE_TIME FROM (SELECT TOP 999999999 MODULE_ID,MODULE_NAME,DATE_TIME FROM (SELECT AML.MODULE_ID,MET.MODULE_NAME,AML.EVENT_ID,AEL.EVENT_NAME, AML.DATE_TIME AS DATE_TIME, AML.USER_LOGIN,AML.PATIENT_ID,AML.REFERENCE_ID,AML.USER_IP_ADDRESS,AML.TRAN_STATUS,USERS.USER_NAME FROM EMRAuditTrial AML LEFT OUTER JOIN EMRAuditEventLkup AEL ON AEL.EVENT_ID = AML.EVENT_ID LEFT OUTER JOIN EMRAuditModuleLkup MET ON MET.MODULE_ID = AML.MODULE_ID LEFT OUTER JOIN USERS ON AML.USER_LOGIN = USERS.USER_LOGIN WHERE AML.USER_LOGIN IN (SELECT DISTINCT USER_LOGIN FROM EMRUSERROLELOCATION WHERE LOCATION_ID = 1831501 ) AND AEL.EVENT_TYPE IN (0,2) AND MET.MODULE_TYPE IN (0,2)) X ORDER BY DATE_TIME ASC ) AS NEWTBL1 ORDER BY DATE_TIME DESC ) AS NEWTBL2 ) ZORDER BY DATE_TIME ASC[/code]MadhivananFailing to plan is Planning to fail |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2010-05-26 : 07:18:34
|
Is it just me?SELECT TOP 999999999 MODULE_ID,MODULE_NAME,DATE_TIMEFROM (...) AS XORDER BY DATE_TIME ASCthen from thatSELECT TOP 100 MODULE_ID, MODULE_NAME,DATE_TIMEFROM (...) AS NEWTBL1ORDER BY DATE_TIME DESCthen from thatSELECT TOP 100 MODULE_ID,MODULE_NAME,DATE_TIME FROM (...) AS NEWTBL2then from thatSELECT ColumnsFROM (...) AS XORDER BY DATE_TIME ASCwhat are all these nests trying to do?NEWTBL2 has no ORDER BY so will give a random selection ...But NEWTBL1 and NEWTBL2 both SELECT TOP 100 - its the same rows, nothing left out isn't it? Therefore superfluous??and the SELECT TOP 999999999 for [X]? Is that trying to select everything? (if so use TOP 100 PERCENT) or genuinely leave anything out of there are more than 999,999,999 rows? (that's a big database, and the query will take forever ...).The query for [X] is selecting a bunch of columns that are then not used, so that may slow things down too ...Maybe I am missing something, but why can't the inner [X] query just SELECT TOP 100 ... ORDER BY DATE_TIME ASC ?Here's my re-formatted version in case usefulSELECT MODULE_ID,MODULE_NAME,ltrim(rtrim(CONVERT(VARCHAR,DATE_TIME,110))) AS DATE_TIME1FROM( SELECT TOP 100 MODULE_ID,MODULE_NAME,DATE_TIME FROM ( SELECT TOP 100 MODULE_ID, MODULE_NAME,DATE_TIME FROM ( SELECT TOP 999999999 MODULE_ID,MODULE_NAME,DATE_TIME FROM ( SELECT AML.MODULE_ID,MET.MODULE_NAME,AML.EVENT_ID,AEL.EVENT_NAME, AML.DATE_TIME AS DATE_TIME, AML.USER_LOGIN,AML.PATIENT_ID,AML.REFERENCE_ID,AML.USER_IP_ADDRESS,AML.TRAN_STATUS,USERS.USER_NAME FROM EMRAuditTrial AML LEFT OUTER JOIN EMRAuditEventLkup AS AEL ON AEL.EVENT_ID = AML.EVENT_ID LEFT OUTER JOIN EMRAuditModuleLkup AS MET ON MET.MODULE_ID = AML.MODULE_ID LEFT OUTER JOIN USERS ON AML.USER_LOGIN = USERS.USER_LOGIN WHERE AML.USER_LOGIN IN ( SELECT DISTINCT USER_LOGIN FROM EMRUSERROLELOCATION WHERE LOCATION_ID = 1831501 ) AND AEL.EVENT_TYPE IN (0,2) AND MET.MODULE_TYPE IN (0,2) ) X ORDER BY DATE_TIME ASC ) AS NEWTBL1 ORDER BY DATE_TIME DESC ) AS NEWTBL2) AS ZORDER BY DATE_TIME ASC |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-27 : 03:43:28
|
I would be surprised if you get reply from the OP MadhivananFailing to plan is Planning to fail |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2010-05-27 : 04:39:27
|
| Oh, OK. Thanks Madhi I'll not spend time then ... |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2010-05-27 : 05:00:44
|
quote: Originally posted by Kristen Oh, OK. Thanks Madhi I'll not spend time then ...
Look at all his posts, he stops as soon as he gets workable solutionMadhivananFailing to plan is Planning to fail |
 |
|
|
|
|
|
|
|