Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Tener Un Registro De Varios Registros
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Tener Un Registro De Varios Registros 
 
Qué tal,

Tengo una tabla como la siguiente:

Código: [Descargar] [Ocultar]
  1. userID;    authID;    authName 
  2. 001;    A0001;    "auth 01" 
  3. 001;    A0002;    "auth 02" 
  4. 001;    A0003;    "auth 03" 
  5. 002;    A0001;    "auth 01" 
  6. 002;    A0002;    "auth 02" 
  7. 003;    A0001;    "auth 01" 
  8.  


Quisiera agrupar de cierta forma los authID y los authName en un solo registro (separados con dos puntos : ), algo como:

Código: [Descargar] [Ocultar]
  1. userID;    authID;                authName 
  2. 001;    A0001:A0002:A0003;    "auth 01":"auth 02":"auth 03" 
  3. 002;    A0001:A0002;        "auth 01":"auth 02" 
  4. 003;    A0001;                "auth 01" 
  5.  


Qué consulta podría usar? Qué instrucción investigo?

Espero puedan darme una luz. Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
mmmm no creo que haya una instrucción que te haga eso de una. Es mucho más simple hacer una tabla nueva vacía y un bucle sobre la tabla vieja que recorra los registros ordenados por userid y authid y vaya rellenando la nueva.
Luego, una vez verificado que tiene lo que querías, eliminas la vieja y renombras la nueva y ya está.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
razaAztk escribió:  
Qué tal, Tengo una tabla como la siguiente:


razaAztk, podes usar vistas para eso y luego concatenas campos con la forma campo1 || ':' || campo2 As concatenacion1y2
Esto funciona para sqlite, las demás bases de datos supongo que serán similares.

CREATE VIEW "direcciones" AS
SELECT
id,
name,
last,
nik,
birth,
name || ':' || last AS nombrecompleto

FROM contactos


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
tincho escribió:  
razaAztk escribió:  
Qué tal, Tengo una tabla como la siguiente:


razaAztk, podes usar vistas para eso y luego concatenas campos con la forma campo1 || ':' || campo2 As concatenacion1y2
Esto funciona para sqlite, las demás bases de datos supongo que serán similares.

CREATE VIEW "direcciones" AS
SELECT
id,
name,
last,
nik,
birth,
name || ':' || last AS nombrecompleto

FROM contactos


Saludos.

Eso no funcionaría. No se trata de concatenar campos de texto dentro del mismo registro, se trata de unificar registros en uno solo. Se puede hacer con sentencias SQL si se sabe el número exacto de registros que por cada registro que se pueda reunir, pero no creo que valga la pena romperse el coco con eso cuando un simple bucle de gambas te soluciona el problema.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
shordi escribió:  
Eso no funcionaría. No se trata de concatenar campos de texto dentro del mismo registro, se trata de unificar registros en uno solo. Se puede hacer con sentencias SQL si se sabe el número exacto de registros que por cada registro que se pueda reunir, pero no creo que valga la pena romperse el coco con eso cuando un simple bucle de gambas te soluciona el problema.

Ok, si lo entendi mal.
Las solucion esta en un post de Stack overflow

SubjectID       StudentName
----------      -------------
1               Mary
1               John
1               Sam
2               Alaina
2               Edward
Result I expected was:

SubjectID       StudentName
----------      -------------
1               Mary, John, Sam
2               Alaina, Edward


SELECT Main.SubjectID,
       LEFT(Main.Students,Len(Main.Students)-1) AS "Students"
FROM
    (
        SELECT DISTINCT ST2.SubjectID,
            (
                SELECT ST1.StudentName + ',' AS [text()]
                FROM dbo.Students ST1
                WHERE ST1.SubjectID = ST2.SubjectID
                ORDER BY ST1.SubjectID
                FOR XML PATH ('')
            ) [Students]
        FROM dbo.Students ST2
    ) [Main]


He agregado este ejemplo en el articulo de nuestra wiki, para verlo ir al final del siguiente post:
https://foro.gambas-es.org/viewtopic.php?f=7&t=6070&highlight=

Saludos.
 



 
última edición por tincho el Martes, 14 Marzo 2017, 12:03; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
Tincho +1
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
Citar:
Las solucion esta en un post de Stack overflow


Muy intersante!!!, Tincho +1
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
Pregunta ¿funciona con sqlite?

A mi me da errores:
Citar:
SQLiteManager: Likely SQL syntax error: SELECT DISTINCT ES2.indx,
    SUBSTRING(
        (
            SELECT ':'+ES1.nombre  AS [text()]
            FROM estudiantes ES1
            WHERE ES1.indx = ES2.indx
            ORDER BY ES1.indx
            FOR XML PATH ('')
        ), 2, 1000) [estudiantes]
FROM estudiantes ES2 [ near "FOR": syntax error ]
Exception Name: NS_ERROR_FAILURE
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
No lo he probado pero, ahora que lo dices, no creo que funcione... hay ahí cosas que nunca he visto en SQLite.

Si luego tengo un rato le echo un vistazo.

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tener Un Registro De Varios Registros 
 
jsbsan escribió:  
...¿funciona con sqlite?A mi me da errores...

Para SQLite, por lo que he leido hay que usar GROUP_CONCAT, nuevamente en stackoverflow hay un ejemplo.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cuantas Camaras Web Puedo Tener Instalada ... jsbsan Aplicaciones/Fragmentos de Código 6 Jueves, 14 Octobre 2010, 02:10 Ver último mensaje
codificador
No hay nuevos mensajes Rellenar Varios Combos De Varios Formulari... CanihoJR General 9 Martes, 12 Junio 2012, 21:44 Ver último mensaje
luisrel
No hay nuevos mensajes Seleccionar Varios Registros En Una Tabla. Shell General 2 Martes, 09 Octobre 2012, 11:00 Ver último mensaje
Shell
No hay nuevos mensajes Retomando Enumerados. Una Variable Que Pue... Shell General 3 Martes, 18 Abril 2017, 22:22 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron