SQL - URGENTE please, Enunciado complicado

 
Vista:

URGENTE please, Enunciado complicado

Publicado por Juan (40 intervenciones) el 28/10/2005 19:17:00
Buenas tardes nuevamente, El siguiente es un ejemplo de lo que deseo que salga.
REGION MONTO T1 MONTO T2
reg1 300.00 150
reg2 200 null
reg3 500 null
reg5 132 125
. . .
. . .
. . .
reg n xxxx xxxxx

TEngo dos tablas con la cual trabajo llamada Phone_COinbox (T1) and Colectas (T2) .
DEtalles:
T1 (telefono,fecha(datetime),monto)
T2 (telefono,fecha(datetime),monto)

Tengo que trabajar con estos campos, existen numero de telefono que no se encuentran en la region de la tabla T2, debido a que esta tabla solo maneja datos de 3 regiones que son las que tenemos en la capital, la T1 maneja todas las regiones a nivel nacional incluyendo las que tiene T1. El ejemplo de arriba indica que, por ejemplo, la región2 es uno de los casos que pertenece a T1, pero no así a T2.
Necesito que se tome como tabla principal la T1 ya que contiene todas los montos de las regiones del país.
Estoy haciendo uso de JOIN, pero no me trae la inffo que quiero, solo me trae las 3 regiones que tiene T2, aunque este utilizando como mandatoria la T1.
Espero haberme explicado ahora, y de antemano las gracias por su ayuda.

Lo que sale actualmente, basado en el ejemplo de arriba.

REGION MONTO T1 MONTO T2
reg1 300 150
reg5 132 125
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:URGENTE please, Enunciado complicado

Publicado por Liliana (426 intervenciones) el 28/10/2005 19:56:00
Juan,
En el ejemplo que te pasé anteriormente, cambia FULL por LEFT.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE please, Enunciado complicado

Publicado por Juan (40 intervenciones) el 28/10/2005 20:59:43
Hola Liliana, estoy utilizando el LEFT JOIN y no me funciona, sigue apareciendo los valores que se encuentren en ambas tablas, obviando los demás. No sé será que luego del ON hago algo mal. Luego del ON escribo donde el T1.Telefono=T2.Telefono. Crees que tenga algo que ver aqui?. Dime si entiendes, de no ser así para pasarte el query que estoy realizando. Gracias..........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE please, Enunciado complicado- QUERY

Publicado por Juan (40 intervenciones) el 28/10/2005 21:17:29
Este es el Query que estoy utilizando actualmente.


SELECT
LEFT(P.zone,3) AS ZONA,
(CASE C.provcod
WHEN 3 THEN 'COL'
WHEN 8 THEN 'PMA'
WHEN 10 THEN 'OES'
END) AS PROVINCIA,
SUM(P.collected_value*.01) AS 'MONTO_CBX',
SUM(C.VALORCAJA)AS 'MONTO_CR'
FROM COLECTAS AS C LEFT OUTER JOIN PHONE_COINBOX AS P
ON (C.telefono=P.phone )
WHERE YEAR(P.collect_date)=2005 AND
MONTH(P.collect_date)=10 AND
DAY(P.collect_date)<=21 AND
(P.collected_value*.01)>0 AND
(P.collected_value*.01)<=400 AND
P.zone NOT LIKE '%pru%' AND
YEAR(C.fechacolec)=2005 AND
MONTH(C.fechacolec)=10 AND
DAY(C.fechacolec)<=21 AND
C.status=9
GROUP BY LEFT(zone,3),provcod
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:URGENTE please, Enunciado complicado- QUERY

Publicado por Liliana (426 intervenciones) el 31/10/2005 14:14:43
Hola Juan,
el motivo por el que no está saliendo como buscás, es que en el WHERE estás dando condiciones para los campos de C, cuando esos campos pueden ser nulos en la combinación con la tabla P.
Para cubrir estos casos, deberás usar:

(C.fechacolec IS NULL OR C.fechacolec <=20021021) AND
(C.status IS NULL OR C.status = 9)

Consejo, usá las fechas completas en las comparaciones, como te estoy mostrando en la corrección.-

Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar