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 06-04-2004
Igna Igna is offline
Miembro
 
Registrado: jun 2003
Posts: 27
Poder: 0
Igna Va por buen camino
consulta SQL

Hola.

No se si lo que intento se puede hacer (a mi no se me ocurre como), espero que a alguien se le ocurra algo.

Tengo dos tablas de la siguiente forma (en interbase):

Materiales
----------
Ndoc Integer
Clave Integer
Referencia Varchar
Concepto Varchar
Importe Numeric (9,2)
.....

Salidas
------
Clave Integer ("enganchada" con materiales.clave)
Cantidad Integer
Factura Varchar
....

lo que quiero hacer, es sacar los datos de una factura determinada. El problema es que en la tabla salidas pueden haber dos registros con la misma clave y la misma factura. Lo que quiero es que me salgan agrupados, y sume las cantidades. A lo máximo que he llegado es a:

select s.clave, sum(s.cantidad) as cant, avg(m.ndoc) as ndoc,
avg(m.importe) as importe, avg(m.importe)*sum(s.cantidad) as total
from salidas s
inner join materiales m on m.clave=s.clave
group by s.clave having factura='numero_factura'


El problema es que no puedo sacar la referencia y el concepto, ya que son varchar, y no puedo utlizar la función AVG.

Bueno, espero haberme explicado bien. Gracias de antemano, y un saludo.
Responder Con Cita
  #2  
Antiguo 06-04-2004
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Mira a ver con:

Código:
Select materiales.referencia, materiales.concepto, 
sum(salidas.cantidad) as cant, sum(salidas.importe * salidas.cantidad) as total
from salidas, materiales
where salidas.factura = 'numero_factura'
and salidas.clave = materiales.clave
gruop by materiales.referencia, materiales.concepto
Si no he entendido mal la pregunta, con esto lo tienes.

Saludos.
Responder Con Cita
  #3  
Antiguo 06-04-2004
Igna Igna is offline
Miembro
 
Registrado: jun 2003
Posts: 27
Poder: 0
Igna Va por buen camino
Gracias por la respuesta.

Lo había solucionado de otra forma (ahora iba a poner como), pero tu solución, desde luego, es mucho más elegante y sencilla.

Yo había creado una vista más o menos como esta:

create view prueba (clave, factura, cantidad) as
select clave, factura, sum(cantidad) as cant from salidas
group by clave, factura


después, simplemente ejecutando el siguiente sql, me daba la solución que quería (creo):

select p.*, m.referencia, m.concepto, m.ndoc, m.importe,
m.importe*p.cantidad as total from prueba p
inner join materiales m on m.clave=p.clave
where p.factura='numero_factura'


De todas formas, creo que tu solución es mucho más sencilla que la mía.

Gracias de nuevo, y un saludo.
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


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


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