Jump to content

Array em sql


Joaanaa.93
 Share

Recommended Posts

Bom dia

Estou com um problema que não o consigo resolver

Queria ver se alguém por aqui poderia ajudar

Eu estou a fazer uma revista para ficar online,

e na parte do backoffice para adicionar revistas eu tenho o numero automático

o problema é que o numero de revista só vai buscar o máximo nr de revista

mas eu preciso de comparar a ver se não há uma revista eliminada

se houver tenho de seleccionar o numero de revista em falta, e não o máximo nr de revista

alguém poderia ajudar-me ?

Comprimentos

Link to comment
Share on other sites

podes explicar melhor?

Pelo o que percebi, queres uma query que te diga quais sao o nr das revistas que estao em falta, supondo qe cada edicao seja um inteiro e que incremente 1 valor por edicao, e' isto?

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

o que ja' tens feito neste momento?

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Neste momento esta assim:

SqlConnection sqlConn = new SqlConnection();
	    sqlConn.ConnectionString = ConfigurationManager.ConnectionStrings["inovaConn"].ConnectionString;
	    SqlCommand sqlCommand = new SqlCommand();
	    sqlCommand.Connection = sqlConn;
	    sqlCommand.CommandText = "Select  nr_revista From Revistas_Header where id = (Select MAX(id) From Revistas_Header)";
	    sqlConn.Open();
	    SqlDataReader dR = sqlCommand.ExecuteReader();

	    while (dR.Read())
	    {
		    nn = dR[0].ToString();
	    }
	    nr = Convert.ToInt16(nn);
	    nr += 1;

Falta agora é ver os números que la estão

Link to comment
Share on other sites

sqlCommand.CommandText = "Select  nr_revista From Revistas_Header";

assim, tens todos os nr das revistas, tens que alterar o codigo para gravar num array, ou podes mandar para um datatable

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

o algoritmo bastante simples, seria algo assim:

criar array arr;
criar array arrNaotem;
criar inteiro inicio, fim;
criar interiro it;

preencher arr com o numero de revistas;
for it = inicio, it<fim, ++it;
 se o arr nao conter o it
 inserir it no arrNaoTem
end for
percorrer o arrNaoTem e imprimir
Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

segue um exemplo como fazer isso em SQL

set nocount on
declare @maxRevista int
declare @incremento int
create table #tmpRevistas (nr_revista int)
set @incremento = 1
set @maxRevista = isnull((select max(nr_revista) from Revistas_Header),0)
while @incremento <= @maxRevista
BEGIN
if(not exists(select * from Revistas_Header where nr_revista =@incremento ))
begin
insert #tmpRevistas
values (@incremento)
end
set @incremento = @incremento + 1
END

SELECT * from #tmpRevistas
drop table #tmpRevistas
Edited by AntonioMateus
Link to comment
Share on other sites

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
 Share

×
×
  • 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.