Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Unificar UNION de 2 select (https://www.clubdelphi.com/foros/showthread.php?t=65671)

ingel 05-01-2010 14:10:49

Unificar UNION de 2 select
 
Buendia a todos .. me estoy peleando hace un rato con el SQL .. el tema es que tengo 2 tablas .. (facturas y Notas de credito) y quiero hacer una
union pero que el resultado me muestre UN REGISTRO con 2 columnas , una con el NOMBRE del vendedor que es EL MISMO para las 2 tablas y otra coluna SOLO LA DIFERENCIA del campo IMPORTE de las 2 tablas

por ej.

En la tabla FACTURAS tengo para el vendedor 1 .. total facturado 100
y en la tabla NC para el vendedor 1 total 20 ...

Lo que quiero es un SELECT que me muestre

vendedor 1 , 80 (o sea las facturas menos las NC)


en lugar de :

vendedor 1 , 100
vendedor 1 , 20

me explico ?

GRACIAS !! y buen año para todos !

fjcg02 05-01-2010 14:23:11

Prueba a ver con esto...

Saludos

Código SQL [-]
select F.vendedor, SUM(F.TotalFacturado-N.Importe ) AS TOTAL
from facturas F
inner join "Notas de credito"  N on (F.idvendedor=N.idvendedor)
group by F.vendedor

ingel 05-01-2010 14:45:20

Gracias ...creo que vamos bien ..
 
solo me faltaria saber DONDE pondria la condicion Where ...
suponte que quiero que el campo Fecha sea 2007 y el vendedor = '63'

select F.vendedor, SUM(F.monto_fact-N.monto_nc ) AS TOTAL
from factres F
inner join nc_emiti N on (F.codigo_emp=N.codigo_emp )

where (year(f.hora)=2007 and f.codigo_emp ='63')

group by F.vendedor


o tambien dentro del ON (...)
Asi como esta me da un valor muy alto ...

gracias

fjcg02 05-01-2010 15:23:08

Código SQL [-]
select F.vendedor, SUM(F.TotalFacturado-N.Importe ) AS TOTAL
from facturas F
inner join "Notas de credito"  N on (F.idvendedor=N.idvendedor)
WHERE lo que quieras
group by F.vendedor

Te recomiendo buscar un manual de SQL, los hay por la red con información suficiente para que en un par de horas tengas un mínimo de conocimientos, por lo menos para empzar.

Saludos

ingel 05-01-2010 15:35:23

gracias ...
 
te aseguro que he buscado bastante antes ...pero ni con UNION ni con SELECT INTO .. ni con JOIN , OUTER JOIN , LEFT OUTER JOIN ,,etc ..
he logrado el resultado que busco ... porque particularmente
en el caso de los JOINS ...
suponiendo que tenga en FACTURAS una de 50 y en NC 2 ( una de 10 y otra de 20 ) ..haga la combinacion de join que haga
me sale como resultado

vend fact nc
1 50.0 10.0
1 50.0 20.0

Entonces me cuenta por ejemplo el 50 de la factura dos VECES ...

en lugar de salir algo asi como

1 50.0 0
1 0 20.0
1 0 10.0

Gracias de todas formas por tu interes y tiempo...
sds

ingel 05-01-2010 15:56:30

Por si a alguien le sirve ....
 
Lo solucione haciendo una VISTA con las 2 tablas

GRACIAS !!
sds

Caro 05-01-2010 17:18:23

Hola ingel, haciendolo con una consulta puedes probar de esta forma también:

Código SQL [-]
select f.vendedor, sum(f.monto)-(select sum(c.monto_credito) from credito c where c.vendedor=f.vendedor group by c.vendedor)
from factura f
where colocas tus condiciones
group by f.vendedor

Saluditos

fjcg02 06-01-2010 21:43:46

Perfectas las dos soluciones, la de Caro y la de las vistas.

La verdad es que respondí rápidamente y no puse demasiada atención.

Saludos


La franja horaria es GMT +2. Ahora son las 23:39:13.

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