Busqueda

10/08/2006 - 21:37 por Omar Castillo | Informe spam
Buenas tardes foro...
Necesito hacer una busqueda en dos tablas
cajasrecibidas y cajasfacturadas
necesito saber de las cajas recibidas cuales no fueron facturadas.
Para esto al ser facturadas se agregan a la tabla de cajasfacturadas

yo hice esto pero parece que no me sirve


select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks, LEFT(en_desc,8)
as BOXID
from cajasrecibidas
where duedate BETWEEN('<<alltrim(thisform.text1.value)>> 00:00:00.000'
and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid not
in ( select cajaid from cajasfacturadas
where duedate between '<<alltrim(thisform.text1.value)>> 00:00:00.000'
and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )

la fecha la uso porque quiero buscar de las cajas que recibi tal dia
cuales me faltaron de facturar

alguna soilucion???

Recibi
cajaid Paquetes
8 1
5 2
2 1

Facture
cajaid Paquetes
8 1
2 1

El resultado debe de ser
cajaid Paquetes
5 2

Preguntas similare

Leer las respuestas

#1 jcac
10/08/2006 - 21:50 | Informe spam
Hola podras utilizar esto en el where

not exists( select * from cajasfacturadas where cajasfactaradas.cajaid =
cajarecibidas.cajaid)

Yo pobre asi y me salio lo que deseas, espero ayudarte

Create Table #Tmp(tId int, valor int)
Insert into #tmp values (8, 1)
Insert into #tmp values (5, 2)
Insert into #tmp values (2, 1)

Create Table #Tmp1(tId int, valor int)
Insert Into #tmp1 values (8,1)
Insert Into #tmp1 values (2,1)

Select * From #tmp t where not exists(select * from #tmp1 t1 where t.tid =
t1.tid)

Drop Table #Tmp
Drop Table #Tmp1


"Omar Castillo" escribió en el mensaje
news:%23KbM%
Buenas tardes foro...
Necesito hacer una busqueda en dos tablas
cajasrecibidas y cajasfacturadas
necesito saber de las cajas recibidas cuales no fueron facturadas.
Para esto al ser facturadas se agregan a la tabla de cajasfacturadas

yo hice esto pero parece que no me sirve


select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks, LEFT(en_desc,8) as
BOXID
from cajasrecibidas
where duedate BETWEEN('<<alltrim(thisform.text1.value)>> 00:00:00.000'
and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid not in
( select cajaid from cajasfacturadas
where duedate between '<<alltrim(thisform.text1.value)>> 00:00:00.000'
and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )

la fecha la uso porque quiero buscar de las cajas que recibi tal dia
cuales me faltaron de facturar

alguna soilucion???

Recibi
cajaid Paquetes
8 1
5 2 2 1

Facture
cajaid Paquetes
8 1
2 1

El resultado debe de ser
cajaid Paquetes
5 2
Respuesta Responder a este mensaje
#2 el zack
10/08/2006 - 22:48 | Informe spam
ok lo que no veo es porque usar el temporal... sencillamente es un slect
donde en el where preguntas si existe en la otra tabla, pero como te
interesan es lo que nos existen ...con un not, antes del existe esta listo

"jcac" wrote:

Hola podras utilizar esto en el where

not exists( select * from cajasfacturadas where cajasfactaradas.cajaid =
cajarecibidas.cajaid)

Yo pobre asi y me salio lo que deseas, espero ayudarte

Create Table #Tmp(tId int, valor int)
Insert into #tmp values (8, 1)
Insert into #tmp values (5, 2)
Insert into #tmp values (2, 1)

Create Table #Tmp1(tId int, valor int)
Insert Into #tmp1 values (8,1)
Insert Into #tmp1 values (2,1)

Select * From #tmp t where not exists(select * from #tmp1 t1 where t.tid =
t1.tid)

Drop Table #Tmp
Drop Table #Tmp1


"Omar Castillo" escribió en el mensaje
news:%23KbM%
> Buenas tardes foro...
> Necesito hacer una busqueda en dos tablas
> cajasrecibidas y cajasfacturadas
> necesito saber de las cajas recibidas cuales no fueron facturadas.
> Para esto al ser facturadas se agregan a la tabla de cajasfacturadas
>
> yo hice esto pero parece que no me sirve
>
>
> select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks, LEFT(en_desc,8) as
> BOXID
> from cajasrecibidas
> where duedate BETWEEN('<<alltrim(thisform.text1.value)>> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid not in
> ( select cajaid from cajasfacturadas
> where duedate between '<<alltrim(thisform.text1.value)>> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )
>
> la fecha la uso porque quiero buscar de las cajas que recibi tal dia
> cuales me faltaron de facturar
>
> alguna soilucion???
>
> Recibi
> cajaid Paquetes
> 8 1
> 5 2 2 1
>
> Facture
> cajaid Paquetes
> 8 1
> 2 1
>
> El resultado debe de ser
> cajaid Paquetes
> 5 2



Respuesta Responder a este mensaje
#3 jcac
10/08/2006 - 23:20 | Informe spam
Me preguntas por que el temporal???, si es eso es solo por constumbre, ya
que a veces las borro y otras no, me estoy acostumbrando a borrarlas, pero
si no lo hago cuando finalice mi sesión se borraran no me gustaria quedarme
con full tablas que solo las haya utilizado de prueba.

Despues no te entiendo lo que indicas.

Saludos

"el zack" <el escribió en el mensaje
news:
ok lo que no veo es porque usar el temporal... sencillamente es un
slect
donde en el where preguntas si existe en la otra tabla, pero como te
interesan es lo que nos existen ...con un not, antes del existe esta
listo

"jcac" wrote:

Hola podras utilizar esto en el where

not exists( select * from cajasfacturadas where cajasfactaradas.cajaid >> cajarecibidas.cajaid)

Yo pobre asi y me salio lo que deseas, espero ayudarte

Create Table #Tmp(tId int, valor int)
Insert into #tmp values (8, 1)
Insert into #tmp values (5, 2)
Insert into #tmp values (2, 1)

Create Table #Tmp1(tId int, valor int)
Insert Into #tmp1 values (8,1)
Insert Into #tmp1 values (2,1)

Select * From #tmp t where not exists(select * from #tmp1 t1 where t.tid
>> t1.tid)

Drop Table #Tmp
Drop Table #Tmp1


"Omar Castillo" escribió en el mensaje
news:%23KbM%
> Buenas tardes foro...
> Necesito hacer una busqueda en dos tablas
> cajasrecibidas y cajasfacturadas
> necesito saber de las cajas recibidas cuales no fueron facturadas.
> Para esto al ser facturadas se agregan a la tabla de cajasfacturadas
>
> yo hice esto pero parece que no me sirve
>
>
> select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks, LEFT(en_desc,8)
> as
> BOXID
> from cajasrecibidas
> where duedate BETWEEN('<<alltrim(thisform.text1.value)>> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid not
> in
> ( select cajaid from cajasfacturadas
> where duedate between '<<alltrim(thisform.text1.value)>>
> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )
>
> la fecha la uso porque quiero buscar de las cajas que recibi tal dia
> cuales me faltaron de facturar
>
> alguna soilucion???
>
> Recibi
> cajaid Paquetes
> 8 1
> 5 2 2 1
>
> Facture
> cajaid Paquetes
> 8 1
> 2 1
>
> El resultado debe de ser
> cajaid Paquetes
> 5 2



Respuesta Responder a este mensaje
#4 Antonio Ortiz
11/08/2006 - 00:15 | Informe spam
y si eliminas el Exist?, seria mas claro y probablemente mas eficiente.

Select * From #tmp t left outer join (select * from #tmp1) t1 on
t.tid=t1.tid where t1.tid is null


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"jcac" escribió en el mensaje
news:
Me preguntas por que el temporal???, si es eso es solo por constumbre, ya
que a veces las borro y otras no, me estoy acostumbrando a borrarlas, pero
si no lo hago cuando finalice mi sesión se borraran no me gustaria
quedarme con full tablas que solo las haya utilizado de prueba.

Despues no te entiendo lo que indicas.

Saludos

"el zack" <el escribió en el mensaje
news:
ok lo que no veo es porque usar el temporal... sencillamente es un
slect
donde en el where preguntas si existe en la otra tabla, pero como te
interesan es lo que nos existen ...con un not, antes del existe esta
listo

"jcac" wrote:

Hola podras utilizar esto en el where

not exists( select * from cajasfacturadas where cajasfactaradas.cajaid >>> cajarecibidas.cajaid)

Yo pobre asi y me salio lo que deseas, espero ayudarte

Create Table #Tmp(tId int, valor int)
Insert into #tmp values (8, 1)
Insert into #tmp values (5, 2)
Insert into #tmp values (2, 1)

Create Table #Tmp1(tId int, valor int)
Insert Into #tmp1 values (8,1)
Insert Into #tmp1 values (2,1)

Select * From #tmp t where not exists(select * from #tmp1 t1 where t.tid
>>> t1.tid)

Drop Table #Tmp
Drop Table #Tmp1


"Omar Castillo" escribió en el mensaje
news:%23KbM%
> Buenas tardes foro...
> Necesito hacer una busqueda en dos tablas
> cajasrecibidas y cajasfacturadas
> necesito saber de las cajas recibidas cuales no fueron facturadas.
> Para esto al ser facturadas se agregan a la tabla de cajasfacturadas
>
> yo hice esto pero parece que no me sirve
>
>
> select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks,
> LEFT(en_desc,8) as
> BOXID
> from cajasrecibidas
> where duedate BETWEEN('<<alltrim(thisform.text1.value)>>
> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid not
> in
> ( select cajaid from cajasfacturadas
> where duedate between '<<alltrim(thisform.text1.value)>>
> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )
>
> la fecha la uso porque quiero buscar de las cajas que recibi tal dia
> cuales me faltaron de facturar
>
> alguna soilucion???
>
> Recibi
> cajaid Paquetes
> 8 1
> 5 2 2 1
>
> Facture
> cajaid Paquetes
> 8 1
> 2 1
>
> El resultado debe de ser
> cajaid Paquetes
> 5 2









Respuesta Responder a este mensaje
#5 jcac
11/08/2006 - 00:30 | Informe spam
Bueno tal vez, sin embargo es importante tu aporte por que esta en tsql

Saludos

"Antonio Ortiz" escribió en el mensaje
news:

y si eliminas el Exist?, seria mas claro y probablemente mas eficiente.

Select * From #tmp t left outer join (select * from #tmp1) t1 on
t.tid=t1.tid where t1.tid is null


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"jcac" escribió en el mensaje
news:
Me preguntas por que el temporal???, si es eso es solo por constumbre, ya
que a veces las borro y otras no, me estoy acostumbrando a borrarlas,
pero si no lo hago cuando finalice mi sesión se borraran no me gustaria
quedarme con full tablas que solo las haya utilizado de prueba.

Despues no te entiendo lo que indicas.

Saludos

"el zack" <el escribió en el mensaje
news:
ok lo que no veo es porque usar el temporal... sencillamente es un
slect
donde en el where preguntas si existe en la otra tabla, pero como te
interesan es lo que nos existen ...con un not, antes del existe esta
listo

"jcac" wrote:

Hola podras utilizar esto en el where

not exists( select * from cajasfacturadas where cajasfactaradas.cajaid
>>>> cajarecibidas.cajaid)

Yo pobre asi y me salio lo que deseas, espero ayudarte

Create Table #Tmp(tId int, valor int)
Insert into #tmp values (8, 1)
Insert into #tmp values (5, 2)
Insert into #tmp values (2, 1)

Create Table #Tmp1(tId int, valor int)
Insert Into #tmp1 values (8,1)
Insert Into #tmp1 values (2,1)

Select * From #tmp t where not exists(select * from #tmp1 t1 where
t.tid >>>> t1.tid)

Drop Table #Tmp
Drop Table #Tmp1


"Omar Castillo" escribió en el mensaje
news:%23KbM%
> Buenas tardes foro...
> Necesito hacer una busqueda en dos tablas
> cajasrecibidas y cajasfacturadas
> necesito saber de las cajas recibidas cuales no fueron facturadas.
> Para esto al ser facturadas se agregan a la tabla de cajasfacturadas
>
> yo hice esto pero parece que no me sirve
>
>
> select LEFT(cajaid,50) as id, LEFT(paquetes,3) as paks,
> LEFT(en_desc,8) as
> BOXID
> from cajasrecibidas
> where duedate BETWEEN('<<alltrim(thisform.text1.value)>>
> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' ) and cajaid
> not in
> ( select cajaid from cajasfacturadas
> where duedate between '<<alltrim(thisform.text1.value)>>
> 00:00:00.000'
> and '<<alltrim(thisform.text1.value)>> 23:59:00.000' )
>
> la fecha la uso porque quiero buscar de las cajas que recibi tal dia
> cuales me faltaron de facturar
>
> alguna soilucion???
>
> Recibi
> cajaid Paquetes
> 8 1
> 5 2 2 1
>
> Facture
> cajaid Paquetes
> 8 1
> 2 1
>
> El resultado debe de ser
> cajaid Paquetes
> 5 2













Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida