Urgente ! Crear una consulta concatenada

Deseo realizarte una consulta
Necesito poder visualizar en una celda de SQL a través de un selec la consulta de 2 o más campos de forma concatenada es decir si tengo el campo a1, a2 y el contenido
en SQL se ve A1 y A2
                    Ramírez Cornejo Edad 30
deseo verlo en la celda para meterlo en un gridex de la siguiente forma
Ramírez Cornejo
¿Edad 30
es decir poder escribir el contenido de una celda después de la otra es posible esto? Desde sql o existe otra forma gracias por tu ayuda ...

1 Respuesta

Respuesta
1
Sinceramente no entiendo muy bien lo que intentas hacer, ¿aver a mi entender deseas consultar a una tabla teniendo 2 condiciones(nombre y edad)?
Bueno para ello tu select debe de ser de esta forma
"select campo1,campo2,capmp3 from tabla where campo1='" & txtNom.text & "' and campo2='" & txtEdad.text & "' "
******
Si no es eso lo que deseas, aclarame tu pregunta a y pues as de saber que hay varias versiones de VB. Y no en todas se trabaja de la misma forma as de indicar cual es la tuya.
Gracias por tu pronta respuesta... si aclarando cuando haces un select el resultado de los rgistros te aparecen en distintos campos lo que deseo es poder meter la información de 2 ó más campos en uno solo de forma que el resultado visual me aparezca en un solo campo el primer campo en una linea el segundo campo en la siguiente linea y así de forma consecutiva lo he tratado de concatenar pero cuando lo meto en un campo me aparecen en una sola linea pero unidos todos y yo lo quiero en lineas separados... ejemplo
todo esto en un solo campo pero el A1 campo en una linea el A2 segundo en otra linea del mismo campo .. actualmente lo tengo así en un solo campo
A1 xxxxxxxxxxx A2 xxxxxxxxxxx A3 xxxxxxxxxxxx pero quiero escribirlo con enter despues del final del campo para escribir el siguiente
de esta manera
            B es un solo campo
 A1 xxxxxxxxxxxxxxxx
 A2 xxxxxxxxxxxxxxxx
 A3 xxxxxxxxxxxxxxxx
gracias agradecere tu ayuda.....
Jamas pensé encontrar este tipo de pregunta, ahora si ya entendí, pero no entiendo el porque quieres hacer eso, bueno pues si si se puede, para ello tienes que almacenar los resultados de tu 2 select en una variable previamente concatenada. Aslo de esta manera
Declare @a varchar(50)
set @a=(select a1  from tabla_x where id=100) + " " + (select a2  from tabla_x where id=100)
select @a

Al final el valor que tu select te retorne solamente sera @a, lo cual ya contiene el valor a1 concatenado con a2
Se me olvidaba de esa forma siempre retornaras un SOLO REGISTRO CONCATENADO, si quieres todos pues tendrás que hacer un bucle que te recorra la tabla capturando los ID, para luego concatenarla varias veces. Y colocar dentro del bucle el código que te di.
Bueno no me pude quedar con a espina, y ise lo que querías pero trabajándolo con una tabla que tengo en mi PC, lo trabaje con un SP, el cual crea una tabla temporal, donde llenare todos los valores concatenados, al final simplemente le ago el select a esa tabla temporal-
create procedure sp_concatena
As
Begin
    Declare @cod_per integer
    Declare @a varchar(50)
    create table #tmp_concatena (a varchar(50))
    declare cur_recorre cursor for
        select cod_per from seg$per
    open cur_recorre
    fetch cur_recorre into @cod_per
    while (@@sqlstatus<>2)
    begin           
        set @a=(select cod_sup from seg$per where cod_per=@cod_per) + " " + (select des_per from seg$per where cod_per=@cod_per)
        insert into #tmp_concatena values (@a)
        fetch cur_recorre into @cod_per
    end
    close cur_recorre
    deallocate cur_recorre   
    select * from #tmp_concatena
end
Lee detenidamente y adaptola a tu tabla
¿Gracias por tu ayuda estoy tratando de adaptar el procedimiento pero tengo una duda
la variable while (@@Statussql<>2) se supone que hay que declararla con algún valor según la cantidad de registros o puede adaptarse hasta que no finalice el numero de registros del cursor? ¿O cómo lo aria?
Gracias ...
Modifique el procedimiento para que escribiera pero aun sigue guardando en el campo final de la tabla tmp_concatenada todos los campos concatenados pero en una sola linea y no hace un enter o final de carro al final del primero para luego escribir el segundo en la siguiente linea ...
existira algun caracter de final de carro o enter para que le diga al momento de insertar que el segundo campo lo escriba en una segunda linea nueva de la misma celda....???
Por tu ayuda gracias ...
Bueno el @@sqlstatus es una variable del sistema cuando veas 2 @s juntos son variables del motor, la uso para recorrer la tabla y concatenarla y todo eso llenarlo en la temporal, previamente concatenada.
Cuando @@sqlstatus sea 2 eso quiere decir que llego al final de la tabla por eso le digo acer mientras no llegue a 2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas