Agrupar resultados

11/11/2005 - 11:36 por Miquel | Informe spam
hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145
...

obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si hay
forma de obtenerlo desde el SQL server

Grácias

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
11/11/2005 - 11:46 | Informe spam
Con un SELECT normal no, habría que hacer otro tipo de operaciones que
son más eficientes en la capa cliente.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Miquel" escribió en el mensaje
news:#
hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145
...

obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y


lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si


hay
forma de obtenerlo desde el SQL server

Grácias


Respuesta Responder a este mensaje
#2 Tinoco
11/11/2005 - 13:16 | Informe spam
Hola Nacho, la forma de resolver esto es por medio de "cursores", pero si ves
este foro los cursores no tienen muchos seguidores, ya que causan
inconvenientes en la BD.

Otra forma de resoverlo es por medio de un "While", pero necesitarias que
tus nombres esten acompañados de un codigo unico, preferiblemente un campo
Identity, para leerlos de forma secuencial.

Hermilson Tinoco

"Miquel" wrote:

hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145


obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si hay
forma de obtenerlo desde el SQL server

Grácias



Respuesta Responder a este mensaje
#3 Alejandro Mesa
11/11/2005 - 15:24 | Informe spam
Miguel,

Concuerdo con Carlos y Tinoco, preferible si armas esto en la aplicacion
cliente, pues el resultado va en contra de la mas simple de las formas
normales (1NF).

How do I concatenate strings from a column into a single row?
http://www.aspfaq.com/show.asp?id%29


AMB

"Miquel" wrote:

hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145


obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si hay
forma de obtenerlo desde el SQL server

Grácias



Respuesta Responder a este mensaje
#4 Miquel
11/11/2005 - 15:57 | Informe spam
Gracias por los comentarios.

Miquel


"Miquel" escribió en el mensaje
news:%
hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145
...

obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y


lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si


hay
forma de obtenerlo desde el SQL server

Grácias


Respuesta Responder a este mensaje
#5 Carlos O.
12/11/2005 - 01:34 | Informe spam
Yo encontre esto en la web:

17 - Obtener filas horizontalmente en SQL Anywhere

La función LIST retorna una cadena (string) conteniendo una lista separada
por comas

compuesta de todos los distintos valores para una expresión caena en cada
grupo de filas.

Ejemplo:

SELECT customer_name,

List(department) dept_list

FROM customers, departments

WHERE customers.cust_code = departments.cust_code

GROUP BY customer_name;



Esto debería retornar algo parecido a esto:

customer_name dept_list

Radan Computational Software,Support,Sales,Admin

A Company
Production,Quality,Sales,Admin



Saludos

Carlos




"Miquel" escribió en el mensaje
news:
Gracias por los comentarios.

Miquel


"Miquel" escribió en el mensaje
news:%
hola,
Me pregunto si es posible dada una tabla asi

nom id
anna 2
anna 23
anna 123
enric 1
isabel 12
isabel 145
...

obtener un resultado así:

nom ids
anna 2,23,123
enric 1
isabel 12,145

a través de una consulta.
(anna ha escrito los artículos 2, 23 y 123, enric ha escrito el 1, ...) y


lo
que tengo que obtener, es el índice al final de un libro indicando qúe
artículos ha escrito cada uno)

Lo tengo hecho ya desde la aplicación cliente, pero me gustaria saber si


hay
forma de obtenerlo desde el SQL server

Grácias






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida