J'ai une procédure stockée comme ceci:écriture procédure stockée dans l'autre procédure stockée
ALTER PROCEDURE [dbo].[Performance]
@startdate NVARCHAR(100),
@enddate NVARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;
SELECT
l.LocName
,v.Vtype
,SUM(DATEDIFF(MI, t.Paydate, t.DelDate)) AS TotalDiff
,CONVERT(DECIMAL(10, 1), AVG(CONVERT(NUMERIC(18, 2), DATEDIFF(MI, t.Paydate, t.DelDate)))) AS Average
FROM Transaction_tbl t
LEFT JOIN VType_tbl v ON t.vtid = v.vtid
LEFT JOIN Location_tbl l ON t.Locid = l.Locid
WHERE t.Locid IN
(
SELECT t1.Locid
FROM Transaction_tbl t1
)
AND dtime BETWEEN '' + @startdate + '' AND '' + @enddate + ''
AND status >= 5
GROUP BY
v.Vtype
,l.LocName
,l.Locid
ORDER BY l.Locid
END
LocName Vtype TotalDiff Average
Fashion Avenue VIP 84 2.1
Fashion Avenue Normal 14007 200.1
Address Hotel Normal 33169 1745.7
dans ce eteint ma moyenne montre en quelques minutes, je veux montrer moyenne en HH: MM (heure, minutes), donc je l'ai écrit comme procédure stockée distincte pour obtenir la moyenne en heures et minutes, cette procédure stockée est comme ceci:
ALTER PROCEDURE [dbo].[test] @locid INT
AS
BEGIN
DECLARE
@Mns DECIMAL
,@dec DECIMAL
SELECT @dec = AVG(CONVERT(NUMERIC(18, 2), DATEDIFF(MI, t.Paydate, t.DelDate)))
FROM Transaction_tbl t
WHERE Locid = @locid;
SELECT @Mns = @dec % 60;
SELECT Avearge =
CONVERT(VARCHAR(10), (CONVERT(DECIMAL(10), @dec/60))) + ':'
+ CONVERT(VARCHAR, @Mns)
END
ici am sortir mettre comme ceci: avearge 29: 6. Je veux montrer ces valeurs moyennes dans ma première procédure stockée ... comment puis-je écrire cette procédure stockée dans la procédure du premier magasin, ou est-ce tout autre moyen d'obtenir cette valeur moyenne? dans la première procédure stockée
Utilisez un [FONCTION] (http://msdn.microsoft.com/en-us/library/ms186755.aspx) au lieu d'une procédure de 'test' – bummi
comment je peux faire that.I suis nouveau en procédure stockée – user2603688