SQL - Sumar todos los campos del store procedure y que devuelvan un solo resultado

   
Vista:

Sumar todos los campos del store procedure y que devuelvan un solo resultado

Publicado por Nahuel (1 intervención) el 26/11/2015 20:11:37
Buenas tardes,

Les quiero pedir la siguiente ayuda tengo este StoreProcedure que ya esta funcionando, la mayoria de los campos traen valores realies, y los que me falta algo de logica traen 0, o 10.90.

Mi duda es la siguiente yo tengo estos campos:

1
2
3
4
5
6
7
8
9
CASE WHEN psu.clientedabetid is not NULL THEN psu.precio ELSE 0 END As TotalEmpresa,
CASE WHEN psu.clientedabetid IS NULL THEN psu.precio ELSE 0 END As TotalParticular,
dbo.ObtenerCremacionPraderas(psu.PrestacionSUId) As MejoraCremacion,
dbo.ObtenerTanatopraxia(psu.PrestacionSUId) As MejoraTanatopraxia,
dbo.ObtenerAzafataPlusNocturno(psu.PrestacionSUId) As MejoraAzafata,
dbo.ObtenerResponsoPraderas(psu.PrestacionSUId) As ResponsoPraderas,
dbo.ObtenerMejoraAtaud(psu.PrestacionSUId) As MejoraAtaud,
dbo.ObtenerAutosAdicionales(psu.PrestacionSUId) As MejoraAutos,
dbo.ObtenerTraslados(psu.PrestacionSUId) As MejoraTraslado,

Los dos casos me devuelven psu.precio o en su defecto 0. Y el resto son funciones que devuelven @Resultado. Todo esto sumado iria en lugar de 10.90 As Total.

No se como hacer para sumar todos esos campos y me devuelvan un solo resultado para colocar en la columna de total.

Alguna idea?.


Este es el store completo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
USE [DbSiniestros]
GO
/****** Object:  StoredProcedure [dbo].[ObtenerEstadisticaDiaria]    Script Date: 11/26/2015 16:06:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:   <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[ObtenerEstadisticaDiaria]
      -- Add the parameters for the stored procedure here
      @EmpresaId int,
      @FechaDesde date,
      @FechaHasta date
AS
BEGIN
      -- SET NOCOUNT ON added to prevent extra result sets from
      -- interfering with SELECT statements.
      SET NOCOUNT ON;
 
    -- Insert statements for procedure here
      select
            ROW_NUMBER() over (ORDER BY p.Fecha, p.Expediente) AS Orden,
            psu.prestacionsuid,
            p.Fecha,
            p.FechaCreacion,
            p.telefonomovil,
            s.nombre as Sala,
            v.nombre as Velatorio,
            p.telefonoparticular,
            a.nombre as Asesor,
            suc.Nombre as Sucursal,
            p.Expediente,
            p.NombreFallecido,
            t.Nombre As Empresa,
            p.HorarioCementerio,
            cem.Nombre as Cementerio,
            dest.nombre as Destino,
            at.Codigo as Ataud,
            p.tanatopraxia,
            (RIGHT ('00' + CAST( DATEPART(hour,psu.Fecha) as nvarchar(2)),2 )
            +
            ':' +
            RIGHT ('00' + CAST( DATEPART(MINUTE,psu.Fecha) as nvarchar(2)),2)) As HoraDeContrataicion,
            p.Responsable,
            CASE WHEN psu.clientedabetid is not NULL THEN psu.precio ELSE 0 END As TotalEmpresa,
            10.90 As Convenio,
            CASE WHEN psu.clientedabetid IS NULL THEN psu.precio ELSE 0 END As TotalParticular,
            dbo.ObtenerCremacionPraderas(psu.PrestacionSUId) As MejoraCremacion,
            dbo.ObtenerTanatopraxia(psu.PrestacionSUId) As MejoraTanatopraxia,
            dbo.ObtenerAzafataPlusNocturno(psu.PrestacionSUId) As MejoraAzafata,
            dbo.ObtenerResponsoPraderas(psu.PrestacionSUId) As ResponsoPraderas,
            dbo.ObtenerMejoraAtaud(psu.PrestacionSUId) As MejoraAtaud,
            dbo.ObtenerAutosAdicionales(psu.PrestacionSUId) As MejoraAutos,
            dbo.ObtenerTraslados(psu.PrestacionSUId) As MejoraTraslado,
            10.90 As Mejoras,
            10.90 As Total,
            10.90 As EquivalenteEnEuros,
            10.90 As Cobrado,
            10.09 As NoCobrado
            from prestacion p
            join prestacionsu psu on psu.prestacionsuid = p.prestacionsuid
            join asesor a on a.asesorid = p.asesorid
            join sucursal suc on suc.sucursalid = p.sucursalid
            left join sala s on s.salaid = p.salaid
            left join velatorio v on v.velatorioid = p.velatorioid
            left join tipodecliente t on t.tipodeclienteid = p.tipodeclienteid
            left join cementerio cem on cem.cementerioid = p.cementerioid
            left join destino dest on dest.destinoid = p.destinoid
            left join ataud at on at.ataudid = p.ataudid
            where p.SucursalId = @EmpresaId and p.Fecha >= @FechaDesde and p.Fecha <= @FechaHasta
            order by p.Fecha, p.Expediente
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Sumar todos los campos del store procedure y que devuelvan un solo resultado

Publicado por Isaias (690 intervenciones) el 26/11/2015 22:57:19
Pues si solo vas a sumar campos seria algo asi:

sum(campo1+campo2+campo3+campo4+campo5.......) as Total
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar