여기에 몇 가지 코드가 있지만 처음에는 내 질문을 explane하고 싶습니다.변수가 포함 된 뷰를 만드는 방법은 무엇입니까?
내가보기를 만들려하지만 내 SELECT
문 하세 거기에 일부 variables
내가 function
몇 가지 답변을 볼 수 있기 때문에보기에서 가능하지 먹으 렴하지만 난 매개 변수가 어떻게 작동하는지 잘 모릅니다. 여기
내 코드
코드 :
DECLARE @totalRecords INT
DECLARE @I INT
SELECT @I = 1
SELECT @totalRecords = COUNT([Id]) FROM [dbo].[Werkzaamheden]
WHILE (@I <= @totalRecords)
BEGIN
SELECT
U.[Id]
, G.[Naam]
, W.[Omschrijving]
, U.[datum]
, CONVERT(VARCHAR,100)+'%' AS 'Status'
, W.[Norm]
, W.Id
FROM [Werkzaamheden] W
RIGHT JOIN [Uitgevoerd] U ON U.[Taak] = W.[Id] /*or left */
FULL JOIN [Gebruikers] G ON G.[Naam] = U.[Naam]
WHERE U.[Status]= 1 AND W.Id = @I
UNION
SELECT
U.[Id]
, G.[Naam]
, W.[Omschrijving]
, U.[datum]
, CONVERT(VARCHAR,0)+'%' AS 'Status'
, W.[Norm]
, W.Id
FROM [Werkzaamheden] W
LEFT JOIN [Uitgevoerd] U ON U.[Taak] = W.[Id] /*or left */
FULL JOIN [Gebruikers] G ON G.[Naam] = U.[Naam]
WHERE U.[Status]= 0 AND W.Id = @I
UNION
SELECT
U.[Id]
, G.[Naam]
, W.[Omschrijving]
, U.[datum]
, null AS 'Status'
, '' AS Norm
, W.Id
FROM [Werkzaamheden] W
RIGHT JOIN [Uitgevoerd] U ON U.[Taak] = W.[Id] /*or left */
FULL JOIN [Gebruikers] G ON G.[Naam] = U.[Naam]
WHERE U.[Status]IS NULL
SELECT @I = @I + 1
END
최고의 salution은 무엇입니까?
이 그것을 반환 할 것입니다 :
Id Naam Omschrijving datum Status Norm Id
NULL Johan NULL NULL NULL 0 NULL
8 Piet Luisteren 2013-05-14 0% 95 3
9 Klaas Luisteren 2013-05-16 100% 95 3
13 Klaas Luisteren 2013-05-17 0% 95 3
14 Janneke Luisteren 2013-05-17 100% 95 3
Id Naam Omschrijving datum Status Norm Id
NULL Johan NULL NULL NULL 0 NULL
4 Janneke Schoonmaken 2013-05-14 100% 20 2
5 Jan Schoonmaken 2013-05-14 0% 20 2
10 Piet Schoonmaken 2013-05-16 100% 20 2
11 Janneke Schoonmaken 2013-05-16 100% 20 2
12 Piet Schoonmaken 2013-05-17 100% 20 2
을하고이 좋은
무엇을하려하십니까? 행별로 Werkzaamheden을 반복하고 각 행에 대한 UNION을 별도의 결과 집합으로 반환 하시겠습니까? 왜? 이 하나의 SELECT – gbn
posibilitie되어야하지만 그렇지 않으면 나는 그저 구조체를 만들 필요가 있지만 그들은 시간이 excecute 더 빠르다 그들은 내게 말했다 – Jeroen
나는 그것이 더 빠르다는 것을 나는 의심 할 여지없이 당신이 사용하는 이유를 볼 수 없다 – gbn