Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
como hago esto....

buen dia, me ha surgido una duda y les quiero consultar como poder hacerlo.

Yo tengo un sistema viejo con delphi5 e interbase y tengo el siguiente problema...

Tengo una tabla con Operaciones

CodOp Fecha
1 4/4/98
2 5/5/99

Y por otro lado tengo la Tabla Compradores
Codcomprador CodOperacion Nombre
100 1 Juan
101 1 Pepe

Y una tabla similiar pero con los vendedores
CodVendedor CodOperacion Nombre
200 1 Valeria
201 1 Ana

Y quiero listar todas las operaciones pero que los compradores y vendedores de cada operacion aparezcan en un mismo renglon, para hacer un reporte

Es decir que el resultado final pueda ser
CodOperacion Compradores Vendedores
1 Juan - Pepe Valeria - Ana

Mi pregunta es como me conviene encarar el tema.
Gracias

Última edición por Patricio fecha: 29-03-2016 a las 15:38:40.
Responder Con Cita
  #2  
Antiguo 29-03-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
es para imprimir....

que me conviene hacer ya la consulta asi o encararlo por el lado de los reportes, ya que la idea es poder imprimirlo
Responder Con Cita
  #3  
Antiguo 29-03-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
Aca hay un articulo que....

buscando en la web encontre esto. que explica varias opciones de realizarlo, pero no comprendo bien el codigo, al escribirlo me tira que no conoce seq lo cual es entendible....

https://www.simple-talk.com/content/...px?article=539

Código:
  SELECT CategoryId,
           MAX( CASE seq WHEN 1 THEN ProductName ELSE '' END ) + ', ' +
           MAX( CASE seq WHEN 2 THEN ProductName ELSE '' END ) + ', ' +
           MAX( CASE seq WHEN 3 THEN ProductName ELSE '' END ) + ', ' +
           MAX( CASE seq WHEN 4 THEN ProductName ELSE '' END )
      FROM ( SELECT p1.CategoryId, p1.ProductName,
                    ( SELECT COUNT(*)
                        FROM Northwind.dbo.Products p2
                        WHERE p2.CategoryId = p1.CategoryId
                        AND p2.ProductName <= p1.ProductName )
             FROM Northwind.dbo.Products p1 ) D ( CategoryId, ProductName, seq )
     GROUP BY CategoryId ;
Responder Con Cita
  #4  
Antiguo 29-03-2016
tmsanchez tmsanchez is offline
Miembro
 
Registrado: mar 2004
Ubicación: Mexico
Posts: 67
Poder: 21
tmsanchez Va por buen camino
Probablemente te sirva esto:

https://firebird21.wordpress.com/201...e-una-columna/

o esto:

https://firebird21.wordpress.com/201...s-de-cada-dia/

saludos.
Responder Con Cita
  #5  
Antiguo 31-03-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
gracias

gracias lo voy a probar pero tiene buena pinta
Responder Con Cita
  #6  
Antiguo 01-04-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
puede que en interbase...

probe y me tiro que no conoce la funcion list, podra ser que en interbase no este no?

Código:
SELECT
   CodOperacion,
   LIST(CodTercero, ';')
FROM
   OperacionActivos
GROUP BY
   CodOperacion
Responder Con Cita
  #7  
Antiguo 01-04-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
me tira un error de fin de comando inesperado y no veo...

creo que puedo hacerlo con un store procedure, cree un ejemplo pero me tira un
Dynamic SQL Error
SQL error code = -104
Unexpected end of command

y no logro ver,....
Código SQL [-]
CREATE PROCEDURE spTelefono RETURNS
(CodTercero INTEGER, Apellido Varchar(50), Nombre Varchar(50), Telefonos VARCHAR(200)) 
AS DECLARE VARIABLE strTelefonos VARCHAR(50);
BEGIN
FOR SELECT CodTercero, Apellido, Nombre FROM Persona
INTO :CodTercero, :Apellido, :Nombre
DO
  BEGIN
    Telefonos = '';
    FOR SELECT Numero FROM Telefono WHERE Telefono.CodTercero = :CodTercero
    INTO strTelefonos
    DO
      BEGIN 
         Telefonos = Telefonos || ' ' || strTelefonos; 
      END     
         SUSPEND;
  END
END;

Última edición por Casimiro Notevi fecha: 01-04-2016 a las 01:20:48.
Responder Con Cita
  #8  
Antiguo 01-04-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero ese código no tiene absolutamente nada que ver con lo que explicaste al principio
Responder Con Cita
  #9  
Antiguo 01-04-2016
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
es una prueba que estaba haciendo

casimiro gracias por tu respuesta y tu tiempo para mirar el codigo...
era un ejemplo que estaba haciendo, yo guardo varios telefonos para cada persona y estaba intentando generar un store procedure para mostrar para cada persona todos sus telefonos,
yo tengo una tabla persona con un codpersona, apellido y nombre,
y una tabla telefono con el mismo codpersona, y el numero del mismo
Mi idea era generar el procedimiento almacenado para que me muestre para cada persona todos sus telefonos en un mismo renglon, algo similar a mostrar para cada operacion todos sus propietarios o vendedores...
bueno de nuevo te agradezco tu tiempo
Responder Con Cita
  #10  
Antiguo 01-04-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Patricio, te entiendo, pero con código de ejemplo ¿cómo se te va a ayudar? Además, insisto, ¿qué tiene que ver eso con lo que planteaste en el primer post?
Deberías aclarar mejor lo que necesitas en el tema del hilo este que has creado, y lo otro, aparentemente no tiene nada que ver, creas otro hilo nuevo.
Creo que es lo que he entendido, lo mismo no comprendí bien lo que has comentado.
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 hago esto? Cflowers Varios 4 26-07-2010 01:36:57
Como Hago ESTO¿? Hitman014 Varios 10 30-03-2008 21:44:27
TreeView... Como hago esto? b3nshi Varios 4 08-08-2007 18:29:17
¿Como hago esto? IZO API de Windows 5 02-03-2007 20:37:38
como hago esto meosre MySQL 3 06-10-2005 17:14:09


La franja horaria es GMT +2. Ahora son las 10:23:55.


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