SQL - Se podrá este SQL

 
Vista:

Se podrá este SQL

Publicado por omar yépez (2 intervenciones) el 13/02/2008 21:35:32
Hola como estan tengo una duda existira uns consulta SQL que me permita hacer esto

Tengo la tabla ejemplo

id valor
1 A
1 B
1 C
2 D
2 E
2 F

PODRIA HACER UN SQL QUE ME RETORNARA LOS VALORES QUE TENGANS id IGUALES PERO EN UN SOLO REGISTRO POR id ? osea que quedará asi....

id valor
1 A, B,C
2 D,E,F

Gracias........
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Se podrá este SQL

Publicado por Isaias (5072 intervenciones) el 14/02/2008 21:14:10
¿Que base de datos estas ocupando?, En SQL Server se podria hacer una FUNCION para hacer lo que necesitas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se podrá este SQL

Publicado por omar yépez (2 intervenciones) el 15/02/2008 20:48:41
Estoy utilizando POSTGRES SQL y estoy seguro que soporta store_procedure
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se podrá este SQL

Publicado por Isaias (5072 intervenciones) el 16/02/2008 01:31:09
Omar

Dije FUNCION (UDF), no es lo mismo que un store_procedure, ya que la funcion se ejecuta en linea y recibe parametros, ejemplo:

SELECT ClienteID, Nombre, Empresa, dbo.fn_CalculaVentaTotal(ClienteID)
FROM..................................

dbo.fn_CalculaVentaTotal, es una funcion y recibe como parametro el ID del cliente, para hacer la SUMA TOTAL de las ventas.

¿Esto lo puede hacer tu base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se podrá este SQL

Publicado por Leo (16 intervenciones) el 16/02/2008 16:04:32
Hola, bueno yo tenia ganas de aprender funciones asi q me puse a investigar como hacer lo tuyo...
aca va !! probado para postgresql 8.2
La primera linea crea el lenguaje, lo segundo crea la funcion, y lo tercero es la consulta q devuelve lo que quieres. Lo q puedes hacer es crear una vista con la consulta
Estoy asumiendo que tienes una tabla que se llama "a" con campos (id, valor), que vendria a ser la tabla que colocaste en el primer posteo. Cambiale los nombres si quieres

CREATE LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION concatenar(id_param integer) RETURNS varchar(20) AS $$
DECLARE
cadena varchar(20);
tupla RECORD;
BEGIN
cadena := ' ';
FOR tupla IN SELECT * FROM a WHERE id= id_param LOOP
cadena := cadena || tupla.valor || ',';
END LOOP;
RETURN cadena;
END;
$$ LANGUAGE plpgsql;

select distinct id,concatenar(id) as valor
from a;

Espero q te ayude!
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar