Я пытаюсь сделать ссылку на ссылку на веб-странице с помощью элемента управления RadGrid. Мне нужно получить подмножество всех записей в моей таблице проектов последним введенным изменением в таблице «Изменения» для каждого уникального проекта с таблицей «Статус из состояния» вместе с деталями проекта. ProjectId & StatusID находятся в таблице изменений как внешние ключи.Как использовать функцию в представлении для возврата только отдельного объединения строк?
Это мой взгляд.
CREATE VIEW [dbo].[Project-by_View]
AS
SELECT TOP (100) PERCENT
dbo.Projects.Id,
dbo.Projects.ProjectName,
dbo.Department.Name,
dbo.Designer.FName + ' ' + dbo.Designer.LName AS Designer,
dbo.Changes.ChangeDate,
dbo.Projects.DueDate,
dbo.Projects.Instructions,
dbo.Status.Description
FROM dbo.Projects
INNER JOIN dbo.Department
ON dbo.Department.ID = dbo.Projects.DeptID
INNER JOIN dbo.Designer
ON dbo.Designer.Id = dbo.Projects.DesignerID
INNER JOIN dbo.Changes
ON dbo.Changes.ProjectID = dbo.Projects.ID
INNER JOIN dbo.Status
ON dbo.Changes.StatusID = dbo.Status.Id
WHERE EXIST (SELECT *
FROM GetAllLastChangeDatebyProjectIds(0))
ORDER BY dbo.Projects.ID DESC
GO
и моя функция
USE [FIDO_DEV]
GO
/****** Object: UserDefinedFunction [dbo].[GetAllLastChangeDatebyProjectIds]
Script Date: 9/14/2015 4:31:22 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author, Geoffrey Stephens>
-- Create date: <Create Date, 09/14/20115>
-- Description: <Description, table of the Last Change Date for each Project>
-- =============================================
ALTER FUNCTION [dbo].[GetAllLastChangeDatebyProjectIds]
(
@ProjectID int
)
RETURNS TABLE
AS
RETURN
(
Select ProjectID, StatusID, ChangeDate from (
Select
ProjectID, StatusID, ChangeDate,
row_number() over(partition by ProjectID order by ChangeDate desc) as rn
from
Changes
) t
where t.rn = 1)
GO
Функция работает Вид и работа отдельно, но вместе я до сих пор получить полный набор данных, возвращаемых.
Я не передаю Project.ID функции, так что ошибки из-за того, что это не может быть связано. Я думал, что, возможно, мне нужно начать с возвращаемого набора данных из функции, а затем сделать joins, b – glstephens08
Заказ не работает, если вы не используете TOP или что-то еще в представлении. – glstephens08
Вы не должны использовать ORDER BY внутри представления. Согласно моему пониманию вещей, считается, что лучше делать заказы снаружи. т.е. SELECT * FROM SomeView ORDER BY SomeColulmn ASC – user5151179