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 05-01-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
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 !
Responder Con Cita
  #2  
Antiguo 05-01-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 05-01-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 05-01-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 05-01-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 05-01-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Por si a alguien le sirve ....

Lo solucione haciendo una VISTA con las 2 tablas

GRACIAS !!
sds
Responder Con Cita
  #7  
Antiguo 05-01-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 06-01-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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
union de select aladelta SQL 6 04-12-2006 10:17:47
Select de un Union All?? Luana Tablas planas 1 17-04-2006 16:24:07
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 16:47:11.


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