Jump to content

Recommended Posts

Posted

Boas pessoal, estou com um problema em organizar dados numa listview pelo seu ID.

1004602_10200773746438956_333178600_n.jpg

É 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?

Posted (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 by Rechousa

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Posted

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

Posted (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 by joaomago
  • 2 months later...
Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.