私は初心者ですが紛失してしまいました!私はユーザー定義関数と入力パラメータとしてCustomerIDを使用して計算を実行しようとしています。 1行の計算を実行している場合、計算が機能しているようです。UDFによる正確な計算に問題があります
ただし、単一の顧客が多数のサポートコールを行うことができるため、顧客は複数の行の料金を請求することができます。
私がCustomerID1を使用して計算しようとすると、私が得る額は正確ではありません。私はこのコードを逆さまにして、これをどうやって得るのか理解できません。
ここにはテーブルのスナップショップへのリンクがあります:私は新しく画像を添付できません。 See table Snapshot to illustrated values and rows
そして、ここでの関数である:
CREATE FUNCTION dbo.CalulateTotal (@CustomerId INT)
RETURNS MONEY
AS
BEGIN
DECLARE @GetTotalCost MONEY
SELECT @GetTotalCost = ISNULL((SUM(SupportHours) * MAX(CostPerHour)),0) + ISNULL((SUM(MilesTraveled) * MAX(CostPer_Mile)),0)
+ ISNULL((SUM(Supplies) + MAX(Misc)),0)
FROM tblSupportCharges
WHERE CustomerId = @CustomerId
GROUP BY CustomerId
RETURN @GetTotalCost
END
Select dbo.CalulateTotal(1)
結果のCustomerId 1を計算するための13ない15
どれでも助けにすべきで大幅に高く評価されます。
はそうありがとうあなたの入力のために多くの。あなたは私に表現を再加工させ、これを働かせるように提案しました!感謝万円! – Asynchronous