En una sola sentencia...!

01/04/2004 - 18:11 por AlejoR | Informe spam
Que tal grupo
En una tabla tengo unos registros que tienen un valor minimo y un valor maximo. Quiero controlar que si se inserta un nuevo registro verifique que no se cruce con otro ya existente, en ese rango
Lo solucioné utilizando un cursor e ir recorriendolo y preguntando...pero se podria hacer eso mismo en una sola sentencia SELECT..
Gracias people!!!

Preguntas similare

Leer las respuestas

#1 Diego Uribe
01/04/2004 - 18:24 | Informe spam
Crea un indice de no repetidos
y cuando intenten insertar registros duplicados dará error de SQL

Diego




"AlejoR" escribió en el mensaje
news:
Que tal grupo.
En una tabla tengo unos registros que tienen un valor minimo y un valor


maximo. Quiero controlar que si se inserta un nuevo registro verifique que
no se cruce con otro ya existente, en ese rango.
Lo solucioné utilizando un cursor e ir recorriendolo y preguntando...pero


se podria hacer eso mismo en una sola sentencia SELECT...
Gracias people!!!
Respuesta Responder a este mensaje
#2 Maximiliano D. A.
01/04/2004 - 19:53 | Informe spam
porque no usas un indice por la columna que deseas que no se repita?

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
En una tabla tengo unos registros que tienen un valor minimo y un valor


maximo. Quiero controlar que si se inserta un nuevo registro verifique que
no se cruce con otro ya existente, en ese rango.
Lo solucioné utilizando un cursor e ir recorriendolo y preguntando...pero


se podria hacer eso mismo en una sola sentencia SELECT...
Gracias people!!!





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
Respuesta Responder a este mensaje
#3 Víctor Rafael Bocanegra Arias
01/04/2004 - 20:53 | Informe spam
Alejo si no mal entiendo tu problema podrias resolverlo creando un trigger
(si tienes MSSQL 2000 podrias crearlo como INSTEAD OF) en el cual deberias
verificar dicha condicion.

Ejm.

El siguiente texto deberias colocarlo dentro de tu trigger:

if not exists(
select id
from inserted a
join tblvalores b on a.minimo between b.minimo and b.maximo or a.maximo
between b.minimo and b.maximo)
insert tblvalores
select id,minimo,maximo, etc, etc
from inserted

Espero que el ejemplo te ayude.

Salu2

Victor Rafael Bocanegra Arias


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
En una tabla tengo unos registros que tienen un valor minimo y un valor


maximo. Quiero controlar que si se inserta un nuevo registro verifique que
no se cruce con otro ya existente, en ese rango.
Lo solucioné utilizando un cursor e ir recorriendolo y preguntando...pero


se podria hacer eso mismo en una sola sentencia SELECT...
Gracias people!!!
Respuesta Responder a este mensaje
#4 AlejoR
01/04/2004 - 23:46 | Informe spam
Entiendo lo que son indices unicos pero no veo como me solucionen la duda
La idea es la siguiente. Tengo unos indicadores que tienen una interpretacion
Ej Indi 1 y las interpretaciones
Entre 1 y 10 Buen
Entre 11 y 20 Regula
Entre 20 y 50 Mala

Se podrian crear otras interpretaciones o dividir las que ya estan,
pero una interpretacion entre 3 y 5 se cruza o entre 6 y 11 se cruza, entr 40 y 55 se cruza y una entre 0 y 60 se cruza
Un indice me cubriria solo unas convinaciones pero no todas
Si se da el caso entre 1 y 5 el indice lo cubriria por el 1, si se da el caso entre 6 y 10 el otro indice lo cubriria por el 1
pero si se da el cado entre 4 y 6 ningun indice lo cubriria

O estoy viendo pajaritos donde no los hay-
Respuesta Responder a este mensaje
#5 Norman A. Armas
02/04/2004 - 16:28 | Informe spam
declare @records as int
declare @valor1 as int
declare @valor2 as int
declare @msg as varchar(100)

set @valor1Y
set @valor2`
set nocount on

select
@records=count(*)
from
table1
where
(@valor1 between campo1 and campo2)
or
(@valor2 between campo1 and campo2)

if @records > 0
begin
set @msg='El insert no se efectuo, el rango dado tiene conflicto con otros
anteriores!!!'
end
else
begin
set @msg='El insert se efectuo!!!'
end

set nocount off
select @msg

Saludos,

Norman
Maicrosoft LVP/MOP Certified



"AlejoR" wrote in message
news:
Entiendo lo que son indices unicos pero no veo como me solucionen la duda.
La idea es la siguiente. Tengo unos indicadores que tienen una


interpretacion
Ej Indi 1 y las interpretaciones
Entre 1 y 10 Buena
Entre 11 y 20 Regular
Entre 20 y 50 Mala.

Se podrian crear otras interpretaciones o dividir las que ya estan,
pero una interpretacion entre 3 y 5 se cruza o entre 6 y 11 se cruza, entr


40 y 55 se cruza y una entre 0 y 60 se cruza.
Un indice me cubriria solo unas convinaciones pero no todas.
Si se da el caso entre 1 y 5 el indice lo cubriria por el 1, si se da el


caso entre 6 y 10 el otro indice lo cubriria por el 10
pero si se da el cado entre 4 y 6 ningun indice lo cubriria.

O estoy viendo pajaritos donde no los hay-.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida