Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2007
Avatar de federiconqn21
federiconqn21 federiconqn21 is offline
Miembro
 
Registrado: dic 2005
Posts: 95
Poder: 19
federiconqn21 Va por buen camino
Thumbs down Intersect en SQL Server

hola a todos!!.tengo el siguiente problema.
cuando ejecuto una consulta que contiene "INTERSECT" me aparece un error que no me la deja ejecutar.
la consulta es algo asi


Código SQL [-]
SELECT id_tramite FROM proveedores WHERE id_cuit=3020102025 intersect
SELECT id_tramite FROM solicitudes WHERE numero_Solic=2

el error que me aparece es este:

Servidor: mensaje 156, nivel 15, estado 1, línea 3
Sintaxis incorrecta cerca de la palabra clave 'intersect'.



estoy utilizando sqlserver 7
alguien me podria orientar un poco?
desde ya muchas gracias y cuidense
Bye

Última edición por federiconqn21 fecha: 04-09-2007 a las 17:53:05.
Responder Con Cita
  #2  
Antiguo 04-09-2007
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
Hola FEde....

leyendo en google,

encontre esto:

Microsoft introduced a new operator, INTERSECT, in SQL Server 2005.

por lo tanto no creo que exista el sql server 7


pero peude atacarlo de esta forma

usando tus tablas


Código SQL [-]
SELECT P.id_tramite FROM proveedores P WHERE P.id_cuit=3020102025 AND
P.id_tramite NOT IN 
SELECT S.id_tramite FROM solicitudes  S WHERE S.numero_Solic=2

espero te sirva...


busca en los libros en pantalla..

la clausula IN o EXISTS

saludos
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #3  
Antiguo 05-09-2007
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
El problema con el NOT IN SELECT es que obligas al SQL a barrer el resultado de la segunda consulta, si entendi bien no quedaria bien algo asi como:

Código SQL [-]
select P.id_tramite from proveedores P left outer join solicitudes S on 
P.id_tramite = S.id_tramite and P.id_cuit=3020102025 and S.numero_Solic=2
where S.id_tramiteIS NULL

era eso?
Responder Con Cita
  #4  
Antiguo 05-09-2007
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
hola sina


tu sentencia lo que hace es traer el conjunto de todos los registros uniendo con el conjunto de registor de la segunda tabla, pero, trayendo todos del primero independiente de si existenn datos de la segunda tabla


y lo que busca el compañero


es traer el conjunto de datos si y solo si esten en los dos conjuntos de datos.



saludos
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #5  
Antiguo 07-09-2007
Avatar de jake
jake jake is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
jake Va por buen camino
Cita:
Empezado por Paoti Ver Mensaje
hola sina


tu sentencia lo que hace es traer el conjunto de todos los registros uniendo con el conjunto de registor de la segunda tabla, pero, trayendo todos del primero independiente de si existenn datos de la segunda tabla


y lo que busca el compañero


es traer el conjunto de datos si y solo si esten en los dos conjuntos de datos.



saludos
bueno según lo que entiendo quieres insertar datos si determinados datos entán en 2 tablas bueno tal vez este procedimiento pueda servir

Código SQL [-]
create proc estaono
as
begin
declare @existendatostabla1 char(2)
declare @existendatostabla2 char(2)

if exists (select * from [tabla1] /*where 'condiciones que dicen si tiene o no los datos que te interesan'*/)
begin
set @existendatostabla1='si'
end

if exists (select * from [tabla2] /*where 'condiciones que dicen si tiene o no los datos que te interesan'*/)
begin
set @existendatostabla2='si'
end 

if (@existendatostabla2='si') and (@existendatostabla1='si')

print 'está en las dos'

/*eso del print fue para probar si existian o no  los datos , aqui puedes hacer lo que quieras ya que comprobaste que el dato está en ambas tablas*/



end
saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas conectividad instalando sql server 2000 en w2k server ospaco69 MS SQL Server 1 16-02-2007 04:39:17
Existe el postgres SQL Server y Client como el SQL Server??? alastor Conexión con bases de datos 5 28-09-2006 21:46:13
Windows Media Server e Internet Information Server Ñuño Martínez Windows 0 08-09-2006 11:26:53
Exportar database sql server 2005 a sql server 2000 ErenioDhG Conexión con bases de datos 1 29-08-2006 15:42:46
Problemas con Terminal Server Win 2003 Server El_Perrito Windows 0 16-10-2004 19:53:45


La franja horaria es GMT +2. Ahora son las 16:32:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi