joaomago Posted July 8, 2013 at 09:13 AM Report #517582 Posted July 8, 2013 at 09:13 AM Boas pessoal, estou com um problema em organizar dados numa listview pelo seu ID. É o seguinte eu tenho 3 querys a adicionar os dados na listview e é devido a isso que os ID's não aparecem ordenados. O que eu gostava agora era de criar algum metodo que me permitisse organizar tudo atráves do ID. Alguém me sabe ajudar?
Rechousa Posted July 8, 2013 at 09:35 AM Report #517586 Posted July 8, 2013 at 09:35 AM (edited) Olá, À partida poderás fazer o seguinte: Em vez de teres três queries a adicionar dados à Listview, poderás ter uma query que corresponde às três, juntas por um UNION, exemplo: SELECT id, Nome AS Descricao FROM TabelaA UNION SELECT MeuID AS id, Descricao FROM TabelaB UNION SELECT id, Descricao FROM TabelaC ORDER BY id ASC; Espero ter ajudado, Edited July 8, 2013 at 09:35 AM by Rechousa Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
joaomago Posted July 8, 2013 at 10:05 AM Author Report #517588 Posted July 8, 2013 at 10:05 AM Dá-me erro, mais concretamente: ' All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists. '
bioshock Posted July 8, 2013 at 10:08 AM Report #517589 Posted July 8, 2013 at 10:08 AM Eventualmente também podes utilizar um objecto, tipo um DataSet, em que envias todas as informações para ele, ordenas-o e por fim envias para a listview.
Rechousa Posted July 8, 2013 at 10:11 AM Report #517590 Posted July 8, 2013 at 10:11 AM Olá, Dá-me erro, mais concretamente: ' All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists. ' O erro é precisamente o que é descrito: ao juntares várias tabelas com UNION, tens de ter o mesmo número de campos, exemplo: SELECT id, Nome AS Descricao, NULL AS Valor FROM TabelaA UNION SELECT MeuID AS id, Descricao, 50 AS Valor FROM TabelaB UNION SELECT id, Descricao, ValorEntrada AS Valor FROM TabelaC ORDER BY id ASC; Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
joaomago Posted July 8, 2013 at 10:20 AM Author Report #517593 Posted July 8, 2013 at 10:20 AM (edited) O problema é que tenho inner joins e tudo pelo meio, o numero de campos não é o mesmo. Segue a respetiva query: SELECT TOP 10000 [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade].[iD] ,[C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade].[Nome] ,[Distrito] ,[Concelho] ,[Morada] ,[CodigoPostal] ,[Email] ,[Telefone] ,[Fax] ,[Website] ,[NumeroTrabalhadores] ,[DataAtualizacao] ,[Notas] ,[TipoEntidade].[Categoria] ,[setor].[Nome] FROM [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade] INNER JOIN [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[setor] on [identificacaoEntidade].[iD_Setor] = [setor].ID INNER JOIN [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[TipoEntidade] on [identificacaoEntidade].[iD_TipoEntidade] = [TipoEntidade].ID UNION SELECT TOP 10000 [iD] ,[Nome] ,[Distrito] ,[Concelho] ,[Morada] ,[CodigoPostal] ,[Email] ,[Telefone] ,[Fax] ,[Website] ,[NumeroTrabalhadores] ,[DataAtualizacao] ,[Notas] ,[iD_TipoEntidade] ,[iD_Setor] FROM [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade] UNION SELECT TOP 10000 [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade].[iD] ,[C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade].[Nome] ,[Distrito] ,[Concelho] ,[Morada] ,[CodigoPostal] ,[Email] ,[Telefone] ,[Fax] ,[Website] ,[NumeroTrabalhadores] ,[DataAtualizacao] ,[Notas] ,[TipoEntidade].[Categoria] FROM [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[identificacaoEntidade] INNER JOIN [C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL11.JOAOMOTADATABASE\MSSQL\DATA\IDT_CONSULTING.MDF].[dbo].[TipoEntidade] on [identificacaoEntidade].[iD_TipoEntidade] = [TipoEntidade].ID ORDER BY ID ASC; Edited July 8, 2013 at 10:21 AM by joaomago
brunobola Posted September 11, 2013 at 10:57 PM Report #524199 Posted September 11, 2013 at 10:57 PM Tens várias Formas, mas se tiveres um SQL que funciona mas desordenado e queres uma solução rápida fazes um View com todos os campos que precisas e depois um Select da View ordenada pelo campo que entenderes.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now