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 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

Hola Amigos

Necesito una pequeña ayuda necesito hacer una consulta que me entregue unos valores de la misma tabla:

por ejemplo, tengo La tabla A, con campos A1, A2,A3; Ahora bien, el campo A1 tiene un dato que dice asi "Nombre (xxx)" y el campo A3 tiene un dato que dice asi "xxx". Necesito seleccionar todos los datos que el campo A3 esta contenido en A1.

me suena como asi: SELECT * FROM A WHERE A1 LIKE '%A3%'

Lo necesito hacer si utilizar variables dentro de la consulta.
Responder Con Cita
  #2  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Asi se entiende un poco mas?

Código SQL [-]
select Bhd.bhd_id,bhd.name,bhd.traveldate,bhd.agent,bhd.status,bhd.consultant,bhd.reference,bhd.closed,bhd.  full_reference,bhd.udtext3
From Bhd
Where Bhd.full_reference = Bhd.udtext3
And Status In ('cf','of')

Ojala Me Puedan Ayudar
Responder Con Cita
  #3  
Antiguo 28-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puede que asi:

Código SQL [-]
select *
from tabla
where a1 containing a3
Responder Con Cita
  #4  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
No me funciono

El tema es que están en lineas distintas, me imagino k debo hacer un ciclo no?...validando
Responder Con Cita
  #5  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
De la base de datos:

En la columna B

Linea 1 Tengo por ejemplo la palabra "PVFT1"

y en la columna A

Linea 2 Tengo la palabra "RESERVA PVFT1"
Linea 3 Tengo la palabra "COPIA RESERVA PVFT1"

AHORA QUIERO MOSTRAS LOS TRES REGISTROS COMO LO HAGO?

ESO ES MAS O MENOS LO QUE NECESITO
Responder Con Cita
  #6  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

El Caso Real

Name Date Agent St User Text Reference Cost Sell
Cristian Original 2014-11-15 Beneck Cf Corteg Pvft158716 260.4167 337.0000
Test Cristian 2014-11-15 Beneck Of Corteg Pvft158716 Pvft160449 20.8333

Son Dos Linea Distintas

Necesito Sumar Ambas Filas Que Queden En Una, Alguien Sabe?

Lo Unico Que Puedo Utilizar Como Para Relacionar Es Text Y Reference

Creo Que Se Utiliza Un Ciclo Para Almacenar Algun Tipo De Variable Algo Asi...
Responder Con Cita
  #7  
Antiguo 28-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Cristhor1982.

Omitiste un detalle importante y es con que RDBMS estas trabajando.

En Firebird podrías hacer:
Código SQL [-]
SELECT  *
FROM TABLA
WHERE A1 CONTAINING (SELECT FIRST 1 A3 FROM TABLA)
Que es una pequeña modificación del código que te puso Casimiro mas arriba, pero esto podría ser diferente para otro gestor de bd.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

Sql Server 2000 ...aun...CONTAINING no funciona en SQL.

No se ve muy bien el ejemplo real de lo que quiero...mmmm voy a tratar de dibujar la tabla...aca

aca va lo que tengo..mas o menos pero no me se como hacer un acumulador y que los junte en una linea.

El tema es que me entrega dos lineas distinta con un solo dato en comun que seria UDTEXT3 Y FULL_REFERENCE, y estos los necesito en una sola linea...

Código SQL [-]
SELECT
    dbo.BHD.NAME,
    dbo.BHD.TRAVELDATE,
    dbo.BHD.AGENT,
    dbo.BHD.STATUS,
    dbo.BHD.CONSULTANT,
    dbo.BHD.UDTEXT3,
    dbo.BHD.FULL_REFERENCE,
    Sum(dbo.BSD.COST) AS COST,
    dbo.BSD.SELL,
    Sum(cast(BSD.AGENT as int)) AS AGENT,
    Sum(BSD.AGENT-dbo.BSD.COST) AS MARGIN
FROM
dbo.BHD
INNER JOIN dbo.BSD ON dbo.BHD.BHD_ID = dbo.BSD.BHD_ID
INNER JOIN dbo.BSL ON dbo.BSD.BHD_ID = dbo.BSL.BHD_ID

WHERE BHD.STATUS IN ('CF','OF')
AND BHD.TRAVELDATE > '2014-11-01'
AND (BSD.BSL_ID='0')

GROUP BY dbo.BHD.NAME,dbo.BHD.TRAVELDATE,dbo.BHD.AGENT,dbo.BHD.STATUS,dbo.BHD.CONSULTANT,dbo.BHD.UDTEXT3,dbo.  BHD.FULL_REFERENCE,BSD.COST,dbo.BSD.SELL,BSD.AGENT

Última edición por Cristhor1982 fecha: 28-05-2014 a las 23:06:22.
Responder Con Cita
  #9  
Antiguo 28-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Cristhor1982.

Según acabo de leer, creo que en el caso de MS SQL Server tendrías que usar los operadores TOP y CONTAINS, algo similar a:
Código SQL [-]
SELECT *
FROM TABLA
WHERE A1 CONTAINS (SELECT TOP 1 A3 FROM TABLA)
Pero no estoy completamente seguro que funcione ya que no uso ese gestor.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-05-2014 a las 23:13:24.
Responder Con Cita
  #10  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Cristhor1982.

Según acabo de leer, creo que en el caso de MS SQL Server tendrías que usar el operador TOP, algo similar a:
Código SQL [-]
SELECT *
FROM TABLA
WHERE A1 CONTAINING (SELECT TOP 1 A3 FROM TABLA)
Pero no estoy completamente seguro que funcione ya que no uso ese gestor.

Saludos
En realidad la base de datos es SQL, pero como gestor tengo un programa que se llama NAVICAT, es super sencillo, solo para consultas
pero containing no lo toma, quizas es el programa...ya que no es tan completo.

No crees que sea necesario, hacer un acumulador en la consulta?

Para poder dejar en una fila los datos ya sumados?...
Responder Con Cita
  #11  
Antiguo 28-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lee lo que ha escrito ecfisa.
Responder Con Cita
  #12  
Antiguo 28-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Cristhor1982.

Fijate que agregué CONTAINS (no había leido ese detalle en tu mensaje).

En cuanto a poner un acumulador depende de lo que este buscando hacer...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lee lo que ha escrito ecfisa.
He leido y probado con Contains, no funciona, por eso necesito de alguna otra ayuda...


En pocas palabras la idea seria que si FULL_REFERENCE = UDTEXT3 sume los datos, el tema es que siempre estaran en filas distintas
Responder Con Cita
  #14  
Antiguo 28-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Cristhor1982.

Ya moví el hilo al foro MS SQL Server, que es frecuentado por compañeros que manejan este gestor. Es probable que en poco tiempo encuentres la respuesta a tu consulta.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #15  
Antiguo 28-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Cristhor1982.

Ya moví el hilo al foro MS SQL Server, que es frecuentado por compañeros que manejan este gestor. Es probable que en poco tiempo encuentres la respuesta a tu consulta.

Saludos
Dale, muchas gracias...Saludos
Responder Con Cita
  #16  
Antiguo 29-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

Aca va un adjunto que clarifica mas
Imágenes Adjuntas
Tipo de Archivo: jpg Sql.jpg (26,0 KB, 9 visitas)
Responder Con Cita
  #17  
Antiguo 29-05-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Has probado a meter la misma tabla dos veces en la consulta?

Select A.a, A.b, A.c, B.a
From tabla A
Inner JOIN tabla B on (A.b=B.c)

Reconcilias la misma tabla por campos diferentes...

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #18  
Antiguo 30-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Cita:
Empezado por fjcg02 Ver Mensaje
Has probado a meter la misma tabla dos veces en la consulta?

Select A.a, A.b, A.c, B.a
From tabla A
Inner JOIN tabla B on (A.b=B.c)

Reconcilias la misma tabla por campos diferentes...

Saludos
Hola como estas?, sabes que no me funciono!!!

Estoy probando otras formas...aun nada
Responder Con Cita
  #19  
Antiguo 30-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mejor pon aquí la estructura de la tabla, los campos y la sql que estás usando.
Responder Con Cita
  #20  
Antiguo 30-05-2014
Avatar de Cristhor1982
Cristhor1982 Cristhor1982 is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 60
Poder: 12
Cristhor1982 Va por buen camino
Como seleccionar datos de una columna en base a un dato de otra de la misma Tabla

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Mejor pon aquí la estructura de la tabla, los campos y la sql que estás usando.
Código SQL [-]
SELECT
    dbo.BHD.NAME,
    dbo.BHD.TRAVELDATE,
    dbo.BHD.AGENT,
    dbo.BHD.STATUS,
    dbo.BHD.CONSULTANT,
    dbo.BHD.UDTEXT3,
    dbo.BHD.FULL_REFERENCE,
    Sum(dbo.BSD.COST) AS COST,
    dbo.BSD.SELL,
    Sum(cast(BSD.AGENT as int)) AS AGENT,
    Sum(BSD.AGENT-dbo.BSD.COST) AS MARGIN
FROM
dbo.BHD
INNER JOIN dbo.BSD ON dbo.BHD.BHD_ID = dbo.BSD.BHD_ID
INNER JOIN dbo.BSL ON dbo.BSD.BHD_ID = dbo.BSL.BHD_ID


WHERE BHD.STATUS IN ('CF','OF')
AND BHD.TRAVELDATE > '2014-11-01'
AND (BSD.BSL_ID='0')
GROUP BY dbo.BHD.NAME,dbo.BHD.TRAVELDATE,dbo.BHD.AGENT,dbo.BHD.STATUS,
dbo.BHD.CONSULTANT,dbo.BHD.UDTEXT3,dbo.BHD.FULL_REFERENCE,BSD.COST,dbo.BSD.SELL,BSD.AGENT


ES ALGO ASI LO K TENGO, NO PUEDO PEGAR LA ESTRUCTURA ACA...

NAME / UDTEX3 / FULL_REFERENCE
CRISTIAN / / 165
CRISTIAN TEST / 165 / 214

NECESITO QUE ESAS DOS LINEAS QUEDEN TRANSFORMADAS EN UNA....CON LA RELACION DE FULL_REFERENCE (165) Y UDTEXT(165)

SE ENTIENDE :s

Última edición por Cristhor1982 fecha: 30-05-2014 a las 22:48:12.
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
Como seleccionar datos de una tabla e insertarlos en otra por Delphi jscubillos5 Varios 13 22-07-2013 18:04:06
copiar de una tabla de una base de datos a otra tabla igual de otra base de datos ingabraham Conexión con bases de datos 1 14-10-2008 23:16:42
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
¿Cómo puedo copiar el contenido de una tabla en otra de distinta Base de Datos? nuri SQL 4 08-07-2005 12:39:52
Copiar una tabla a otra base de datos noe Firebird e Interbase 4 09-03-2005 17:37:47


La franja horaria es GMT +2. Ahora son las 12:49:20.


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