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 10-05-2011
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
sumar concadenaciones en sql-firebird 2.0

Código SQL [-]

select nrofactura, [nombarticulo]|| ' ' ||[cantidad] from detalleventa, facturas
where codfac=codfacdetalle


fact 001 ,( dolex 5, advi 4, mentol 1) <<-- ir como concadenado estos campos
fact 002 ,( aspirina 2, advi 3, algodon 1)
...


osea q me valla como lo que hace la funcion sum

algo como asi

Código SQL [-]

select nrofactura,sum( [nombarticulo]|| ' ' ||[cantidad])articulos_comprados from detalleventa, facturas
where codfac=codfacdetalle

pero no funcionaria por q nomarticulo es string y se necesita es concatenar.

gracias.
__________________
Enseñar es la virtud de un sabio.

Última edición por ingabraham fecha: 10-05-2011 a las 20:15:06.
Responder Con Cita
  #2  
Antiguo 10-05-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Código Delphi [-]
Select nrofactura, nombarticulo || ' ' || cantidad from detalleventa, facturas
where codfac = codfacdetalle
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 10-05-2011
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
no es eso, el si hace la contenacion, pero si cada registro detalle tiene varios articulos vendidos que los concadene a todos x factura.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #4  
Antiguo 10-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
O sea, ¿todos los registros en uno sólo?, no se puede hacer, salvo que te crees un procedimiento almacenado y que devuelva un string o algo así.
Responder Con Cita
  #5  
Antiguo 10-05-2011
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
exacto., eso es lo q necesito,
como lo haria-
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #6  
Antiguo 10-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pero no os parece que la concatenacion es simplemente para mostrar el dato junta a.
No creo que sea eficiente o se pueda sumar un string que contenga un dato numerico.
Me da la impresion (sin probarlo) que seria algo asi:
Código SQL [-]

select nrofactura, [nombarticulo]|| ' ' || sum([cantidad]), articulos_comprados from detalleventa, facturas
where codfac=codfacdetalle
Me parece que hace la concatenacion, pero solo suma el dato catidad, no el nombarticulo que no es numerico.
Saludos
PD: No se si necesita un group by en esto.
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 11-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que parece que lo que quiere es unir los datos de varios registros. No se puede con un select, de ninguna manera.
Tendría que hacer un store procedure que haga el select y almacene en una variable el resultado, como una cadena de texto, y finalmente devuelva el valor de esa variable.
Eso es suponiendo que haya entendido bien lo que quiere.
Responder Con Cita
  #8  
Antiguo 19-05-2011
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
como lo hago
no tengo ni idea.

store procedure
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #9  
Antiguo 19-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿No te vale hacerlo desde delphi?
Responder Con Cita
  #10  
Antiguo 19-05-2011
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
Hola, lo primero que tendrías que hacer es un procedimiento como este pero basado en tus tablas.

Código SQL [-]
SET TERM ^ ;

ALTER PROCEDURE FillDetalle(
  ID_FAC INTEGER)
RETURNS (Productos VARCHAR(1000))
AS
DECLARE VARIABLE concatenado VARCHAR(50);
begin
 Productos = '';
 FOR
 SELECT nombreproducto || ' ' || CAST(cantidad as varchar(10))
 FROM DETALLEFACTURA
 WHERE REF_FACTURA = :ID_FAC
 into :concatenado
 DO BEGIN
   Productos = Productos ||', '|| concatenado;

 END
 SUSPEND;
end^

SET TERM ; ^

luego puedes ejecutar nuevamente tu consulta

Código SQL [-]
Select FACT, (Select * From  FILLDETALLE(ID_FACTURA)) as Concatenado
from FACTURA

y listo aqui eso funcionó bien, ahh, en el procedimiento puedes de alguna forma quitarle la primera ',' que esta demas.

salu2
Responder Con Cita
  #11  
Antiguo 19-05-2011
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
exacto, distes en el problema
ya con esto kdo solucionado mi foro.
ha y era create en vez de alter

gracias,

como cierro el foro?.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #12  
Antiguo 19-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ingabraham Ver Mensaje
como cierro el foro?.
No tenemos costumbre de cerrar los hilos por si alguien quiere aportar algo nuevo.
Saludos.
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
sumar edits Kamael OOP 17 12-03-2015 19:18:55
sumar columna Memo6015 OOP 11 27-01-2011 02:06:33
Sumar Horas BuenaOnda MS SQL Server 7 26-01-2008 04:12:03
Sumar Columnas leodelca23 Tablas planas 17 25-09-2006 22:05:48
sumar horas rober Varios 14 10-06-2004 01:30:57


La franja horaria es GMT +2. Ahora son las 21:21:09.


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