Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta de dos tablas

Estas en el tema de Consulta de dos tablas en el foro de SQL Server en Foros del Web. Hola Buenos días, estoy tengo un query que realiza una consulta a dos tablas donde me trae la cantidad de facturas de un vendedor ya ...
  #1 (permalink)  
Antiguo 03/07/2013, 06:54
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Consulta de dos tablas

Hola Buenos días, estoy tengo un query que realiza una consulta a dos tablas
donde me trae la cantidad de facturas de un vendedor ya sea mensual o diaria agrupando la cantidad total.

He estado intentando hacer un query que me traiga agrupadas la cantidad diaria de facturas del vendedor pero comprendidas en el mes.

Este es el query que uso:
Código SQL:
Ver original
  1. SET DATEFORMAT DMY
  2. SELECT    
  3. SAFACT.CodVend, SAVEND.Descrip,
  4. COUNT(SAFACT.NumeroD) AS CANTIDAD
  5.  
  6. FROM         SAFACT INNER JOIN
  7.              SAVEND ON SAFACT.CodVend = SAVEND.CodVend
  8.  
  9. WHERE       (SAFACT.FechaE >= '1/06/2013 06:0:00:000')
  10.         AND (SAFACT.FechaE <= '30/06/2013 20:0:00:000')
  11.          AND (SAFACT.CodVend = 110)
  12.         AND (SAFACT.TipoFac = 'a')
  13.      
  14.  GROUP BY SAFACT.CodVend, SAVEND.Descrip
  15.  
  16.  
  17.  
  18. -----------------------------------------------------------------------------------
  19.  
  20. Codvend  l  Descrip           l     Cantidad
  21. ---------------------------------------------
  22. 110          Yosmary Perez       377


Asi me trae la consulta , yo quisiera saber si puedo traerlo pero la cantidad por días.

Última edición por gnzsoloyo; 03/07/2013 a las 14:13
  #2 (permalink)  
Antiguo 03/07/2013, 07:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

como por dias? podrias explicarte con peras y manzanas? y poner un pequeño ejemplo de tus datos??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 03/07/2013 a las 07:40
  #3 (permalink)  
Antiguo 03/07/2013, 08:45
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Al decir por días me refiero a la cantidad de facturas que hace un vendedor diariamente durante un mes, Es decir quiero saber si mantiene una cantidad aceptable de facturas teniendo todo en una sola vista y no tener que consular día a día.

Ej de mis datos :

Codvend l Descrip l Cantidad

116 ANDRIS MIRANDA 3
120 LILIBETH CASTRO 95
45 AISKEL DE ABREU 120
04 PEDRO JOSE 3
91 ORIANA CENTENO 145
107 RAIMOND SKOCH 849

en la parte de cantidad lo usamos para ver cual vendedor facturo mas. pero ahora quiero saber de cada vendedor su promedio diario de facturación.
  #4 (permalink)  
Antiguo 03/07/2013, 08:52
 
Fecha de Ingreso: julio-2013
Ubicación: Villa Flandria
Mensajes: 16
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Consulta de dos tablas

Código SQL:
Ver original
  1. SELECT fecha, COUNT(*) AS cantidad_de_facturas
  2. WHERE fecha BETWEEN primer_dia_mes AND ultimo_dia_mes
  3. GROUP BY fecha

Creo que bastaria con eso!

Saludos

Última edición por gnzsoloyo; 03/07/2013 a las 14:14
  #5 (permalink)  
Antiguo 03/07/2013, 08:54
 
Fecha de Ingreso: julio-2013
Ubicación: Villa Flandria
Mensajes: 16
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Consulta de dos tablas

Perdon, evidentemente en la query que envie falta " FROM tu_tabla_facturas " entre select y where
  #6 (permalink)  
Antiguo 03/07/2013, 09:24
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

si ya lo hice , pero me queda igual :s no me agrupa me lo trae todo separado

Query:
Código SQL:
Ver original
  1. SET DATEFORMAT DMY
  2.  
  3. SELECT    
  4. SAFACT.FechaE, SAFACT.CodVend, SAVEND.Descrip,
  5. COUNT(*) AS cantidad_de_facturas
  6.  
  7. FROM         SAFACT INNER JOIN
  8.              SAVEND ON SAFACT.CodVend = SAVEND.CodVend
  9.              
  10. WHERE       (SAFACT.TipoFac = 'a')
  11.         AND  SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
  12.           AND '30/06/2013 20:0:00:000'
  13.           AND (SAFACT.CodVend = 110)
  14.  
  15.        
  16.  GROUP BY  SAFACT.FechaE,SAFACT.CodVend, SAVEND.Descrip
Resultado del Query :

2013-06-03 08:40:51.323 110 YOSMARY PEREZ 1
2013-06-03 09:03:42.523 110 YOSMARY PEREZ 1
2013-06-03 09:14:49.650 110 YOSMARY PEREZ 1
2013-06-03 09:37:44.563 110 YOSMARY PEREZ 1
2013-06-03 09:44:00.110 110 YOSMARY PEREZ 1
2013-06-03 09:47:24.633 110 YOSMARY PEREZ 1
2013-06-03 09:48:30.183 110 YOSMARY PEREZ 1
2013-06-03 10:06:45.797 110 YOSMARY PEREZ 1
2013-06-03 10:18:22.010 110 YOSMARY PEREZ 1
2013-06-03 10:22:37.877 110 YOSMARY PEREZ 1
2013-06-03 10:27:24.150 110 YOSMARY PEREZ 1
2013-06-03 10:40:01.577 110 YOSMARY PEREZ 1
2013-06-03 10:56:37.697 110 YOSMARY PEREZ 1
2013-06-03 11:07:31.463 110 YOSMARY PEREZ 1
2013-06-03 11:47:49.373 110 YOSMARY PEREZ 1
2013-06-03 11:48:09.540 110 YOSMARY PEREZ 1
2013-06-03 12:15:47.217 110 YOSMARY PEREZ 1
2013-06-03 12:28:32.433 110 YOSMARY PEREZ 1
2013-06-03 12:35:13.930 110 YOSMARY PEREZ 1

No se como hacer que me salga Agrupada la cantidad diaria por fecha me las trae separadas y serian N filas

Última edición por gnzsoloyo; 03/07/2013 a las 14:14
  #7 (permalink)  
Antiguo 03/07/2013, 09:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

convierte tu fecha a formato dd/mm/yyyy porque como la traes en formato con hora no puedes agruparlo :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 03/07/2013, 10:39
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Disculpa esta pregunta, pero la verdad estoy muy novata y no quiero cometer un error en la DB.
Si yo convierto como me dices el formato fecha solo lo estaría haciendo mientras realizo la consulta? o me hablas de modificar en la tabla como tal el tipo de campo fecha?
  #9 (permalink)  
Antiguo 03/07/2013, 10:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

solo en la consulta

algo asi:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. fecha datetime,
  4. id INT,
  5. nombre VARCHAR(20),
  6. total INT
  7. )
  8. INSERT INTO #temp VALUES ('2013-06-03 08:40:51.323', 110 ,'YOSMARY PEREZ', 1)
  9. INSERT INTO #temp VALUES ('2013-06-03 09:03:42.523', 110, 'YOSMARY PEREZ', 1)
  10. INSERT INTO #temp VALUES ('2013-06-03 09:14:49.650', 110, 'YOSMARY PEREZ', 1)
  11. INSERT INTO #temp VALUES ('2013-06-03 09:37:44.563', 110, 'YOSMARY PEREZ', 1)
  12. INSERT INTO #temp VALUES ('2013-06-03 09:44:00.110', 110, 'YOSMARY PEREZ', 1)
  13. INSERT INTO #temp VALUES ('2013-06-03 09:47:24.633', 110, 'YOSMARY PEREZ', 1)
  14. INSERT INTO #temp VALUES ('2013-06-03 09:48:30.183', 110, 'YOSMARY PEREZ', 1)
  15. INSERT INTO #temp VALUES ('2013-06-03 10:06:45.797', 110, 'YOSMARY PEREZ', 1)
  16. INSERT INTO #temp VALUES ('2013-06-03 10:18:22.010', 110, 'YOSMARY PEREZ', 1)
  17. INSERT INTO #temp VALUES ('2013-06-03 10:22:37.877', 110, 'YOSMARY PEREZ', 1)
  18. INSERT INTO #temp VALUES ('2013-06-03 10:27:24.150', 110, 'YOSMARY PEREZ', 1)
  19.  
  20.  
  21. SELECT CONVERT(VARCHAR(20),fecha,101) AS fecha,id,nombre,SUM(total) FROM #temp
  22. GROUP BY id,nombre,CONVERT(VARCHAR(20),fecha,101)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 03/07/2013, 12:45
 
Fecha de Ingreso: julio-2013
Ubicación: Villa Flandria
Mensajes: 16
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Consulta de dos tablas

Mira lo siguiente:

SET DATEFORMAT DMY

SELECT
SAFACT.FechaE, SAFACT.CodVend, SAVEND.Descrip,
COUNT(*) AS cantidad_de_facturas

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend

WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
and '30/06/2013 20:0:00:000'
AND (SAFACT.CodVend = 110)


GROUP BY SAFACT.FechaE,SAFACT.CodVend, SAVEND.Descrip

Eso es tu query

Y esto tu resultado

2013-06-03 08:40:51.323 110 YOSMARY PEREZ 1
2013-06-03 09:03:42.523 110 YOSMARY PEREZ 1
2013-06-03 09:14:49.650 110 YOSMARY PEREZ 1
2013-06-03 09:37:44.563 110 YOSMARY PEREZ 1
2013-06-03 09:44:00.110 110 YOSMARY PEREZ 1
2013-06-03 09:47:24.633 110 YOSMARY PEREZ 1
2013-06-03 09:48:30.183 110 YOSMARY PEREZ 1
2013-06-03 10:06:45.797 110 YOSMARY PEREZ 1
2013-06-03 10:18:22.010 110 YOSMARY PEREZ 1
2013-06-03 10:22:37.877 110 YOSMARY PEREZ 1
2013-06-03 10:27:24.150 110 YOSMARY PEREZ 1
2013-06-03 10:40:01.577 110 YOSMARY PEREZ 1
2013-06-03 10:56:37.697 110 YOSMARY PEREZ 1
2013-06-03 11:07:31.463 110 YOSMARY PEREZ 1
2013-06-03 11:47:49.373 110 YOSMARY PEREZ 1
2013-06-03 11:48:09.540 110 YOSMARY PEREZ 1
2013-06-03 12:15:47.217 110 YOSMARY PEREZ 1
2013-06-03 12:28:32.433 110 YOSMARY PEREZ 1
2013-06-03 12:35:13.930 110 YOSMARY PEREZ 1

Estas agrupando por fecha pero con horas, minutos y segundos como datos! Debes agrupar solo por la fecha, osea en el select deberias tomar de SAFACT.fechaE solo Y-m-d, para ello existe la funcion:

SELECT DATE_FORMAT(SAFACT.fechaE, '%Y-%m-%d') AS fecha, SAFACT.CodVend, SAVEND.Descrip,
COUNT(*) AS cantidad_de_facturas

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend

WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
and '30/06/2013 20:0:00:000'
AND (SAFACT.CodVend = 110)

El '%Y-%m-%d' de date_format indica que porcion de la fecha tomaras.
Y solo lo afecta en la consulta, obviamente tu DB seguira manteniendo la fecha en formato datetime completo.
  #11 (permalink)  
Antiguo 03/07/2013, 13:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

Cita:
Iniciado por chule_chuletas Ver Mensaje
Mira lo siguiente:

SET DATEFORMAT DMY

SELECT
SAFACT.FechaE, SAFACT.CodVend, SAVEND.Descrip,
COUNT(*) AS cantidad_de_facturas

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend

WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
and '30/06/2013 20:0:00:000'
AND (SAFACT.CodVend = 110)


GROUP BY SAFACT.FechaE,SAFACT.CodVend, SAVEND.Descrip

Eso es tu query

Y esto tu resultado

2013-06-03 08:40:51.323 110 YOSMARY PEREZ 1
2013-06-03 09:03:42.523 110 YOSMARY PEREZ 1
2013-06-03 09:14:49.650 110 YOSMARY PEREZ 1
2013-06-03 09:37:44.563 110 YOSMARY PEREZ 1
2013-06-03 09:44:00.110 110 YOSMARY PEREZ 1
2013-06-03 09:47:24.633 110 YOSMARY PEREZ 1
2013-06-03 09:48:30.183 110 YOSMARY PEREZ 1
2013-06-03 10:06:45.797 110 YOSMARY PEREZ 1
2013-06-03 10:18:22.010 110 YOSMARY PEREZ 1
2013-06-03 10:22:37.877 110 YOSMARY PEREZ 1
2013-06-03 10:27:24.150 110 YOSMARY PEREZ 1
2013-06-03 10:40:01.577 110 YOSMARY PEREZ 1
2013-06-03 10:56:37.697 110 YOSMARY PEREZ 1
2013-06-03 11:07:31.463 110 YOSMARY PEREZ 1
2013-06-03 11:47:49.373 110 YOSMARY PEREZ 1
2013-06-03 11:48:09.540 110 YOSMARY PEREZ 1
2013-06-03 12:15:47.217 110 YOSMARY PEREZ 1
2013-06-03 12:28:32.433 110 YOSMARY PEREZ 1
2013-06-03 12:35:13.930 110 YOSMARY PEREZ 1

Estas agrupando por fecha pero con horas, minutos y segundos como datos! Debes agrupar solo por la fecha, osea en el select deberias tomar de SAFACT.fechaE solo Y-m-d, para ello existe la funcion:

SELECT DATE_FORMAT(SAFACT.fechaE, '%Y-%m-%d') AS fecha, SAFACT.CodVend, SAVEND.Descrip,
COUNT(*) AS cantidad_de_facturas

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend

WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
and '30/06/2013 20:0:00:000'
AND (SAFACT.CodVend = 110)

El '%Y-%m-%d' de date_format indica que porcion de la fecha tomaras.
Y solo lo afecta en la consulta, obviamente tu DB seguira manteniendo la fecha en formato datetime completo.
Date_format no existe en sql server por eso puse el convert(varchar(20),datetime,101) que es el formato para que te lo de en dd/mm/yyyy

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 03/07/2013, 13:55
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

HOLA, intente con el query como me dices me subraya diciendo que no es un nombre se función reconocido

SELECT DATE_FORMAT(SAFACT.fechaE, '%Y-%m-%d') AS fecha, SAFACT.CodVend, SAVEND.Descrip,
COUNT(*) AS cantidad_de_facturas

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend

WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013 06:0:00:000'
and '30/06/2013 20:0:00:000'
AND (SAFACT.CodVend = 110)
  #13 (permalink)  
Antiguo 03/07/2013, 14:02
 
Fecha de Ingreso: julio-2013
Ubicación: Villa Flandria
Mensajes: 16
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Consulta de dos tablas

INA_987, mira lo que me comenta Libras. Hacele caso! La query que yo te di es para mysql. Tu problema es en sql server. Usa lo que el dice! convert(varchar(20),datetime,101) Ahi no te deberia fallar
  #14 (permalink)  
Antiguo 03/07/2013, 14:03
 
Fecha de Ingreso: julio-2013
Ubicación: Villa Flandria
Mensajes: 16
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Consulta de dos tablas

Osea, hace lo mismo que te dije yo, pero dandole formato a la fecha con convert(varchar(20),datetime,101) , como dice Libras, en lugar de DATE_FOMAT. Se entiende?
  #15 (permalink)  
Antiguo 03/07/2013, 14:06
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Si , No había leído el comentario del al final cuando mire nuevamente me di cuenta. ;)
  #16 (permalink)  
Antiguo 03/07/2013, 14:17
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Cita:
Iniciado por Libras Ver Mensaje
solo en la consulta

algo asi:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. fecha datetime,
  4. id INT,
  5. nombre VARCHAR(20),
  6. total INT
  7. )
  8. INSERT INTO #temp VALUES ('2013-06-03 08:40:51.323', 110 ,'YOSMARY PEREZ', 1)
  9. INSERT INTO #temp VALUES ('2013-06-03 09:03:42.523', 110, 'YOSMARY PEREZ', 1)
  10. INSERT INTO #temp VALUES ('2013-06-03 09:14:49.650', 110, 'YOSMARY PEREZ', 1)
  11. INSERT INTO #temp VALUES ('2013-06-03 09:37:44.563', 110, 'YOSMARY PEREZ', 1)
  12. INSERT INTO #temp VALUES ('2013-06-03 09:44:00.110', 110, 'YOSMARY PEREZ', 1)
  13. INSERT INTO #temp VALUES ('2013-06-03 09:47:24.633', 110, 'YOSMARY PEREZ', 1)
  14. INSERT INTO #temp VALUES ('2013-06-03 09:48:30.183', 110, 'YOSMARY PEREZ', 1)
  15. INSERT INTO #temp VALUES ('2013-06-03 10:06:45.797', 110, 'YOSMARY PEREZ', 1)
  16. INSERT INTO #temp VALUES ('2013-06-03 10:18:22.010', 110, 'YOSMARY PEREZ', 1)
  17. INSERT INTO #temp VALUES ('2013-06-03 10:22:37.877', 110, 'YOSMARY PEREZ', 1)
  18. INSERT INTO #temp VALUES ('2013-06-03 10:27:24.150', 110, 'YOSMARY PEREZ', 1)
  19.  
  20.  
  21. SELECT CONVERT(VARCHAR(20),fecha,101) AS fecha,id,nombre,SUM(total) FROM #temp
  22. GROUP BY id,nombre,CONVERT(VARCHAR(20),fecha,101)

saludos!
no entiendo porque el insert into ?
insert into #temp values ('2013-06-03 10:27:24.150', 110, 'YOSMARY PEREZ', 1)

  #17 (permalink)  
Antiguo 03/07/2013, 14:23
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

Cita:
Iniciado por INA_987 Ver Mensaje
no entiendo porque el insert into ?
insert into #temp values ('2013-06-03 10:27:24.150', 110, 'YOSMARY PEREZ', 1)




simple y sencillo, yo no tengo los datos de tu tabla en una tabla de mi base de datos, por lo cual para que entendieras mejor el ejemplo cree una tabla temporal (#temp) a la cual le inserte los valores, esto para que cuando ejecutes todo el codigo que puse te des cuenta del resultado que se obtiene, ahora lo que tienes que hacer es aplicar la misma logica que aplico en mi query pero a tus datos(claro haciendo las modificaciones necesarias).

__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #18 (permalink)  
Antiguo 03/07/2013, 16:05
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Cita:
Iniciado por Libras Ver Mensaje


simple y sencillo, yo no tengo los datos de tu tabla en una tabla de mi base de datos, por lo cual para que entendieras mejor el ejemplo cree una tabla temporal (#temp) a la cual le inserte los valores, esto para que cuando ejecutes todo el codigo que puse te des cuenta del resultado que se obtiene, ahora lo que tienes que hacer es aplicar la misma logica que aplico en mi query pero a tus datos(claro haciendo las modificaciones necesarias).

aaaaaaaaaaaaaaahhhhh ok, sorry no sabia ...
  #19 (permalink)  
Antiguo 14/07/2013, 13:52
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

;( No he podido hacer que funcione ;(
me da ese error :


Mens. 8117, Nivel 16, Estado 1, Línea 4
Operand data type varchar is invalid for sum operator.
  #20 (permalink)  
Antiguo 15/07/2013, 07:52
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

creo que estas queriendo sumar datos tipo varchar, ya probaste con un

sum(convert(int,tu_dato))
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #21 (permalink)  
Antiguo 17/07/2013, 06:53
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Cita:
Iniciado por Libras Ver Mensaje
creo que estas queriendo sumar datos tipo varchar, ya probaste con un

sum(convert(int,tu_dato))

SELECT
CONVERT (VARCHAR(20),SAFACT.FechaE,110)AS FechaE, SAFACT.CodVend, SAVEND.Descrip,
SUM (convert(int,SAFACT.NumeroD))

FROM SAFACT INNER JOIN
SAVEND ON SAFACT.CodVend = SAVEND.CodVend
WHERE (SAFACT.TipoFac = 'a')
and SAFACT.FechaE BETWEEN '1/06/2013'
and '30/06/2013'
AND (SAFACT.CodVend = 19)


GROUP BY CONVERT(varchar(20),SAFACT.FechaE,110),SAFACT.CodV end, SAVEND.Descrip


Eso lo intente, pero me da otro error.

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
  #22 (permalink)  
Antiguo 17/07/2013, 07:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

ese es un error en donde la conversion a datetime te da un valor fuera de rango(por ejemplo 32 de febrero)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #23 (permalink)  
Antiguo 17/07/2013, 10:25
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

Oye con tu msj. me acabo de dar cuenta probando otras fechas ej. ('09/05/2012 ') ,('15/06/2013')o ('10/03/2013') ......cuando el día esta entre el 1 al 10 corre el código pero no me trae nada.
y cuando el día va de 11 para arriba da el error fuera de rango.
  #24 (permalink)  
Antiguo 17/07/2013, 10:40
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

entonces supongo que tus fechas estan en formato MM/DD/YYYY prueba poniendo
'05/09/2012 ') ,('06/15/2013') o ('03/10/2013') y ve si ese el el formato de fecha de tu base de datos, si haces un

select getdate() que fecha te trae??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #25 (permalink)  
Antiguo 17/07/2013, 11:00
 
Fecha de Ingreso: junio-2009
Mensajes: 18
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Consulta de dos tablas

no trae nada .....dice se ha ejecutado correctamente pero no trae ningún dato
  #26 (permalink)  
Antiguo 17/07/2013, 11:12
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta de dos tablas

un select getdate() no te trae nada???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #27 (permalink)  
Antiguo 18/07/2013, 09:04
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Consulta de dos tablas

una opinion, creo que antes de convertir los datos, se debe verificar como esta estructurada la tabla de las que deseas obtener la informacion(tipo de Dato).

una alternativa(y creo que ya la estoy repitiendo) seria similar a la siguiente sintaxis:
Código SQL:
Ver original
  1. SELECT CONVERT(VARCHAR,SAFACT.FechaE,103)AS FechaE,SAFACT.CodVend, AVEND.Descrip,SUM (SAFACT.NumeroD) AS Total_Fact
  2. FROM SAFACT INNER JOIN SAVEND
  3. ON SAFACT.CodVend = SAVEND.CodVend
  4. AND SAFACT.TipoFac = 'a'
  5. AND SAFACT.FechaE BETWEEN '1/06/2013' AND '30/06/2013'
  6. AND SAFACT.CodVend = 19
  7. GROUP BY CONVERT (VARCHAR,SAFACT.FechaE,103),SAFACT.CodVend, SAVEND.Descrip

espero te pueda ayudar en algo......

Etiquetas: join, select, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:37.