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:
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.
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
0