Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Se resuelve usando Group by y sum()? (http://www.forosdelweb.com/f87/resuelve-usando-group-sum-581356/)

horizonte 29/04/2008 17:51

Se resuelve usando Group by y sum()?
 
Hola Gente:

Tengo una vista(vw_Resumen), en la que debo sumar(SUM()) los valores de los campos numericos agrupados(group by) por el campo llamado "tema", teniendo en cuenta que "tema" y "tema_01" son el mismo tema por ende tengo que evitar que me discrimine el "_01" para que sume ambas en el mismo grupo.

Lo primero que se me ocurrio fue actualizar(update) la vista, quitandole el "_01" y luego en otra consulta la agrupo(group by), pero el Update no es aplicable a las vistas(solo es aplicable a tablas). De esta forma no me queda otra que hacer la suma(SUM()) en la misma vista pero hasta ahora no tengo idea como evitar el "_01", para que me los sume dentro del mismo grupo.

Desde ya muchas gracias a quien puda aportar algo,
Saludos.:adios:

iislas 29/04/2008 18:03

Re: Se resuelve usando Group by y sum()?
 
group by left(campo, 4)

horizonte 29/04/2008 18:26

Re: Se resuelve usando Group by y sum()?
 
Cita:

Iniciado por iislas (Mensaje 2384607)
group by left(campo, 4)

Hola iislas:

Por lo que averigue esa variante de group by agrupa el campo solo teniendo en cuenta sus 4 primeros caracteres contando de la izquierda.

El tema que el campo por el que debo agrupar("tema") tiene longitud variable, es decir los valores de "tema" son: "teoria simple", "teoria simple 01", "practica compuesta", "practica compuesta 01", "relacion simple", "relacion simple 01",....y asi con todos los temas de la tabla.

A mi se me hace que debo 1° ordenar por dicho campo y luego usar los IF(), pero la veo complicada.

Desde ya muchas gracias,
Saludos.:adios:

flaviovich 30/04/2008 10:41

Re: Se resuelve usando Group by y sum()?
 
Si los temas terminan en '01', entonces quita ese 01 con
Código:

LEFT( tema , LEN(tema) - CASE WHEN CHARINDEX ( '01' , tema ) = 0 THEN 0 ELSE 2 END )

iislas 30/04/2008 11:47

Re: Se resuelve usando Group by y sum()?
 
http://www.sindominio.net/ayuda/preg...eligentes.html

horizonte 02/05/2008 21:49

Re: Se resuelve usando Group by y sum()?
 
Cita:

Iniciado por flaviovich (Mensaje 2385556)
Si los temas terminan en '01', entonces quita ese 01 con
Código:

LEFT( tema , LEN(tema) - CASE WHEN CHARINDEX ( '01' , tema ) = 0 THEN 0 ELSE 2 END )

Gracias por la ayuda, funciono barbaro.:si:

iislas:

Lei algo del link que posteastes, y coincido en casi todo, salvo que los manuales no me los leo de ppio a fin, muchos dicen que hay cosas que no las aprendes hasta que las necesitas.

Muchas gracias a ambos!,
Saludos.:adios:


La zona horaria es GMT -6. Ahora son las 05:49.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.