![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Problemas con consulta SQL
El problema es que tengo que poner las fechas para poder comparar la fecha de entrada de un deposito con la fecha de su conteo.
Muchas gracias por la respuesta seguiremos investigando. Luis Garcia _____________________________ La mejor manera de decir es hacer |
|
#2
|
||||
|
||||
|
Y cual de las fechas tenes que poner, si las son distintas
![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
2 cosas...
1) Nunca hagas un union, porque segun mi experiencia con SQL, si bien las tablas necesitan ser iguales, la consulta puede producir resultados distintos, asi que siempre mejor usar tablas temporales... donde en ambas guardas los datos que necesitas y luego por medio de un select puedes sacar los datos que necesitas... 2) Has probado meter ambos resultados en tablas temporales y sacarlos con un SELECT DISTINCT ???? eso creo, seria tu solucion. Con el tema de las tablas temporales tienes 2 opciones: CREATE @tabla TABLE (campos) CREATE TABLE #tabla (campos) La diferencia, es el tipo de tabla temporal, si bien las 2 son temporales, la que se crea con #tabla si bien es temporal a su vez es fisica, lo que significa que el server la crea como un objeto temporal por lo cual hasta que no termina la consulta la tabla existe... La otra @tabla es solo de memoria, asi que por propia experiencia te sugiero que solo utilices @tabla cuando no pases los 4000 registros, ya que si lo haces y varias consultas son ejecutadas al mismo tiempo el equipo se pone "tonto" y un simple "select * from tabla where 1=0" puede tardar 5 minutos, eso es porque MSSQL fragmenta mucho la memoria en este tipo de tabla.... Saludetes !
__________________
El diseño dira si tiene futuro... |
|
#4
|
||||
|
||||
|
Hola Xianto.
Con respecto de: Cita:
¿distintos a que? En mi experiencia, las uniones son sumamemte útiles y constituyen una fortaleza de SQL, y atacarlas de este modo, sin dar mayores argumentos no me parece buena idea. Quizas estemos hablando de cosas distintas, asi que te agradeceré argumentar tu aseveración. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
|||
|
|||
|
Problemas con consulta SQL
Muchas gracias por sus respuestas y por el interesante debate al final resolvi el problema haciendo un select relacionando las tablas de 2 BD diferentes aprovechando el campo comun a ambas,ahi les muestro el codigo para que el que tenga un problema parecido le pueda dar solucion:
CREATE PROCEDURE DatosDepositos @tienda int, @fecha1 datetime, @fecha2 datetime AS SELECT Sala.dbo.Bolsos.numero, CONVERT(VARCHAR(10), Depositos.fecha, 103) as fechadeposito, CONVERT(VARCHAR(10), Sala.dbo.Bolsos.fecha_conteo, 103) as fechaconteo, Tienda.dbo.Depositos.importe as declarado, Sala.dbo.Detalles.gravamen as contado FROM Sala.dbo.Bolsos INNER JOIN Sala.dbo.Bolso_Detalles ON Sala.dbo.Bolsos.id = Sala.dbo.Bolso_Detalles.idbolso INNER JOIN Sala.dbo.Detalles ON Sala.dbo.Bolso_Detalles.iddetalles = Sala.dbo.Detalles.id INNER JOIN Tienda.dbo.Depositos ON Sala.dbo.Bolsos.numero = Tienda.dbo.Depositos.numero WHERE tienda = @tienda and Tienda.dbo.Depositos.fecha between @fecha1 and @fecha2 GO Saludos Luis Garcia _____________________________ La mejor manera de decir es hacer |
|
#6
|
||||
|
||||
|
Nas...
Jachguate con motivo de las union, mi recomendacion de no usarlas, es porque a menos que los resultados que estas sacando de las x selects que tengas sean todos correctos y esten bien construidos, podrian salir resultados inesperados, por esto es siempre mas facil trabajar con tablas temporales, incluso es mas rapido si las tablas no estan indexadas por los campos con lo que haces la join. Por otro lado, en los grupos de SQL que hay en google, podras encontrar algunos comentarios sobre unions que fallan aunque las querys sean correctas... Parte de este problema se soluciona con el SP 4, del sql 2000, aunque equipos con mas de 2 gb de memoria, aun no puedan instalarlo, porque este y otros problemas se verian aumentados... Saludetes !!!
__________________
El diseño dira si tiene futuro... |
|
#7
|
||||
|
||||
|
Cita:
![]() Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#8
|
||||
|
||||
|
Buceando por el foro he encontrado este hilo en el que se hace referencia a algo que me podría servir, pero que desconozco totalmente.
Cita:
He visto que también se llaman "Variables de tabla", pero no tengo demasiado claras sus limitaciones. ¿Podría usar la misma tabla en varios procedimientos diferentes? ¿Se puede usar una misma tabla durante una sesión? (entendiendo como sesión el tiempo que invierta el usuario dentro de la aplicación) ¿Se pueden utilizar varias al mismo tiempo? |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|