11. juli 2011 - 08:41Der er
8 kommentarer og 1 løsning
Min SQL sætning sorterer ikke
Hej Jeg har en (for mig) voldsom SQL sætning. Det er i forbindelse med en søgning og den finder fint det den skal. Mit problem er at den er fuldstændig ligeglad med om jeg ved min sidste ORDER BY 3, PostedTime ASC om til DESC. Det kan jeg ikke gennemskue hvorfor! Kan du?
SELECT 'MESSAGE' AS [Kategori], m.ID, m.ID AS [MessageID], m.Message AS [tekst], m.GuestBookID AS [MainID], m.Name AS [Navn], m.PostedTime, g.GuestBookName FROM [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE m.GuestBookID = g.ID AND ( (GuestBookID IN ( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',Message)>0 )) UNION SELECT 'SVAR' AS [Kategori], s.svarID AS [ID], m.ID AS [MessageID], svar as [tekst], s.MessagesID AS [MainID], s.navn AS [Navn], s.PostedTime, g.GuestBookName FROM [dbo].[T_Svar] s, [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE s.MessagesID = m.ID AND m.GuestBookID = g.ID AND s.MessagesID = m.ID AND m.GuestBookID = g.ID AND ( ( m.GuestBookID IN( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',s.svar)>0)) ORDER BY 3, PostedTime ASC
Nu er jeg lidt ude i nogle forsøg. Men det er lidt svært, når jeg ikke selv kan afprøve. Men du kan prøve det her.
SELECT 'MESSAGE' AS [Kategori], m.ID, m.ID AS [MessageID], m.Message AS [tekst], m.GuestBookID AS [MainID], m.Name AS [Navn], m.PostedTime, g.GuestBookName FROM [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE m.GuestBookID = g.ID AND ( (GuestBookID IN ( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',Message)>0 )) ORDER BY m.PostedTime UNION SELECT 'SVAR' AS [Kategori], s.svarID AS [ID], m.ID AS [MessageID], svar as [tekst], s.MessagesID AS [MainID], s.navn AS [Navn], s.PostedTime, g.GuestBookName FROM [dbo].[T_Svar] s, [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE s.MessagesID = m.ID AND m.GuestBookID = g.ID AND s.MessagesID = m.ID AND m.GuestBookID = g.ID AND ( ( m.GuestBookID IN( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',s.svar)>0))
Jeg er lige blevet opmærksom på at jeg jo først sorterer på ORDER BY 3, PostedTime ASC dvs MessageID og indenfor det så virker det. Beklager at jeg har spildt din tid :S
SELECT 'MESSAGE' AS [Kategori], m.ID, m.ID AS [MessageID], m.Message AS [tekst], m.GuestBookID AS [MainID], m.Name AS [Navn], m.PostedTime, g.GuestBookName FROM [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE m.GuestBookID = g.ID AND ( ( GuestBookID IN ( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',Message)>0 ) ) UNION SELECT 'SVAR' AS [Kategori], s.svarID AS [ID], m.ID AS [MessageID], svar as [tekst], s.MessagesID AS [MainID], s.navn AS [Navn], s.PostedTime, g.GuestBookName FROM [dbo].[T_Svar] s, [dbo].[TblMessages] m, [dbo].[TblGuestBooks] g WHERE s.MessagesID = m.ID AND m.GuestBookID = g.ID AND s.MessagesID = m.ID AND m.GuestBookID = g.ID AND ( ( m.GuestBookID IN( 3, 4, 5, 8, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31 ) AND PATINDEX('%cutter%',s.svar)>0 ) ) ORDER BY 3, 7 ASC
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.