![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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 Saludos. |
#3
|
|||
|
|||
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. |
![]() |
|
|
![]() |
|