SQL Сервер: пытается использовать среднее в представлении [Self Resolved] - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть таблица с записями о заправках газа для моего автомобиля, а также таблица с информацией о поездке, и я пытаюсь перевести ее с помощью книг Excel. Я пытаюсь взять среднюю ставку ($ / л) заправок, чтобы определить, сколько мне стоило поездки за газ.

У меня есть представление, которое возвращает столбец TravelDay ( дата) и Travel (км) для каждого введенного дня, и, если есть несколько записей, Путешествие является суммой.

Я пытаюсь создать столбец, который будет Путешествие * Среднее ( Оцените), и я продолжаю получать ошибки, однако я пытаюсь это сделать.


При написании этого я выяснил, как мне действительно нужно заставить его работать, и, надеюсь, это поможет кому-то еще, что пытается сделать это, и тоже вытаскивает свои волосы!

Я создал среднее как скалярную функцию

CREATE FUNCTION [dbo].[Key_Average_kmPerLitre_FuncSV]
    --Created Parameter, because it wouldn't work without it... not used.
    (@Param1 Int)
RETURNS decimal(17,9)
AS
BEGIN
    DECLARE @val AS decimal(17,9)
    SELECT @val = AVG(kmpL) FROM dbo.Records_GasFills
    RETURN @val
END
GO

Затем я смог успешно использовать его в представлении и он смог разрешить его (в нескольких точках у меня почти было это ... но я забыл передать ему значение для параметра, и когда я это сделал, это сработало)

SELECT TOP (100) PERCENT 
    CAST(TravelDate AS Date) AS TravelDay, 
    SUM(km) AS Travel, 
    SUM(km) / dbo.Key_Average_kmPerLitre_FuncSV(1) AS [Fuel L]
FROM          
    dbo.Records_Travel
GROUP BY 
    CAST(TravelDate AS Date)
ORDER BY 
    TravelDay

Теперь перейдем к моей следующей части ... для генерации средней стоимости обслуживания / км ...

...