Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como hago esto.... (https://www.clubdelphi.com/foros/showthread.php?t=90058)

Patricio 29-03-2016 16:29:51

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

Patricio 29-03-2016 16:55:42

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

Patricio 29-03-2016 17:27:48

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 ;


tmsanchez 29-03-2016 19:55:05

Probablemente te sirva esto:

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

o esto:

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

saludos.

Patricio 01-04-2016 00:55:01

gracias
 
gracias lo voy a probar pero tiene buena pinta

Patricio 01-04-2016 01:52:43

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


Patricio 01-04-2016 01:58:53

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;

Casimiro Notevi 01-04-2016 02:22:27

Pero ese código no tiene absolutamente nada que ver con lo que explicaste al principio :confused:

Patricio 01-04-2016 14:54:48

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

Casimiro Notevi 01-04-2016 17:15:28

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.


La franja horaria es GMT +2. Ahora son las 01:01:33.

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