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

[SOLUCIONADO] Consulta en northwind

Estas en el tema de Consulta en northwind en el foro de SQL Server en Foros del Web. a ver vamos por partes, quieres que te regrese los datos en decimal y estas regresando en tu fucion enteros??? revisa el tipo de dato ...

  #31 (permalink)  
Antiguo 22/11/2013, 08:45
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 en northwind

a ver vamos por partes, quieres que te regrese los datos en decimal y estas regresando en tu fucion enteros??? revisa el tipo de dato que regresas, prueba con regresar decimal ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #32 (permalink)  
Antiguo 22/11/2013, 10:00
 
Fecha de Ingreso: noviembre-2013
Mensajes: 28
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Consulta en northwind

Ya lo hice de esta manera es decire declare la columna "[1996] Decimal" pero me sigue votando enteros.
  #33 (permalink)  
Antiguo 22/11/2013, 10: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 en northwind

One question, why you use @pais a parameter if you don't use the parameter into the function??? the solution was simple, only put money instead to decimal en the function table and everything works fine, but as I know that you can't do that here is the function in the format that you need:

Código SQL:
Ver original
  1. ALTER FUNCTION m_ventaPtos(@pais VARCHAR(500))
  2. RETURNS @monto TABLE (Pais VARCHAR(500),[1996] money,[1997] money,[1998] money)
  3. AS
  4. BEGIN
  5.     INSERT @monto
  6.     SELECT shipcountry AS PAIS, isnull(SUM([1996]),0) AS [1996],isnull(SUM([1997]),0) AS [1997],isnull(SUM([1998]),0) AS [1998] FROM
  7. (
  8.     SELECT
  9.     CASE WHEN datepart(yyyy,OrderDate)=1996 THEN SUM(total) END AS [1996],
  10.     CASE WHEN datepart(yyyy,OrderDate)=1997 THEN SUM(total) END AS [1997],
  11.     CASE WHEN datepart(yyyy,OrderDate)=1998 THEN SUM(total) END AS [1998],
  12.     ShipCountry
  13.      FROM(
  14.     SELECT
  15.     OrderDate,(UnitPrice * Quantity) AS total, ShipCountry
  16.      FROM [ORDER Details] AS t1
  17.     LEFT JOIN Orders AS t2 ON (t1.OrderID=t2.OrderID)
  18.     ) AS t1
  19.     GROUP BY ShipCountry,orderdate
  20. ) AS t2 GROUP BY ShipCountry
  21.     RETURN
  22. END
  23.  
  24. SELECT * FROM m_ventaPtos('Argentina')

Reagrds,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #34 (permalink)  
Antiguo 22/11/2013, 13:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Consulta en northwind

después de 32 post, se empieza a perder la paciencia !!!
__________________
MCTS Isaias Islas
  #35 (permalink)  
Antiguo 22/11/2013, 13:25
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 en northwind

Cita:
Iniciado por iislas Ver Mensaje
después de 32 post, se empieza a perder la paciencia !!!
usted que cree amigo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #36 (permalink)  
Antiguo 23/11/2013, 22:30
 
Fecha de Ingreso: noviembre-2013
Mensajes: 28
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Consulta en northwind

Jajaja les pido disculpas a todos. Pero bueno me sirvio mucho la ayuda de Libras.

SORRY Si fui muy tedioso ;)

Etiquetas: sql
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 03:55.