0
У меня есть эта хранимая процедура:Update хранимая процедура не деться колонки
SELECT
s.Id AS IdCategory,
s.Description AS Category,
COUNT(s.Description) AS TotalYEAR
INTO
#AuditYear
FROM
[dbo].[Audit] aa (NOLOCK)
INNER JOIN
[dbo].[AuditActOrCondition] a (NOLOCK) ON aa.Id = a.IdAudit
INNER JOIN
[dbo].[ActOrCondition] ac (NOLOCK) ON a.IdActCondition = ac.Id
INNER JOIN
[dbo].[ACType] t (NOLOCK) ON ac.Type = t.Id
INNER JOIN
[dbo].[ACSubType] s (NOLOCK) ON ac.Subtype = s.Id
WHERE
YEAR(aa.CreateDate) = (SELECT YEAR
FROM [dbo].[KPIS] k1 (NOLOCK)
WHERE k1.Id = @Id)
GROUP BY
s.Id, s.Description
SELECT
s.Id AS IdCategory,
s.Description AS Category,
COUNT(s.Description) AS TotalMonth
INTO
#AuditMonth
FROM
[dbo].[Audit] aa (NOLOCK)
INNER JOIN
[dbo].[AuditActOrCondition] a (NOLOCK) ON aa.Id = a.IdAudit
INNER JOIN
[dbo].[ActOrCondition] ac (NOLOCK) ON a.IdActCondition = ac.Id
INNER JOIN
[dbo].[ACType] t (NOLOCK) ON ac.Type = t.Id
INNER JOIN
[dbo].[ACSubType] s (NOLOCK) ON ac.Subtype = s.Id
WHERE
MONTH(aa.CreateDate) = (SELECT MONTH
FROM [dbo].[KPIS] k1 (NOLOCK)
WHERE k1.Id = @Id)
GROUP BY
s.Id, s.Description
SELECT
y.IdCategory, y.Category,
ISNULL(m.TotalMonth,0) AS TotalMonth,
y.TotalYEAR
FROM
#AuditYear y
LEFT JOIN
#AuditMonth m ON y.IdCategory = m.IdCategory
И я хочу, чтобы добавить столбец с именем BranchOfficeId
поэтому я делаю INNER JOIN
как:
SELECT
s.Id AS IdCategory,
s.Description AS Category,
COUNT(s.Description) AS TotalYEAR,
b.BranchOfficeId
INTO
#AuditYear
FROM
[dbo].[Audit] aa (NOLOCK)
INNER JOIN
[dbo].[Department] AS d (NOLOCK) ON aa.IdDepartment = d.Id
INNER JOIN
[dbo].[BranchOffice] AS b (NOLOCK) ON b.BranchOfficeId = d.BranchOfficeId
INNER JOIN
[dbo].[AuditActOrCondition] a (NOLOCK) ON aa.Id = a.IdAudit
INNER JOIN
[dbo].[ActOrCondition] ac (NOLOCK) ON a.IdActCondition = ac.Id
INNER JOIN
[dbo].[ACType] t (NOLOCK) ON ac.Type = t.Id
INNER JOIN
[dbo].[ACSubType] s (NOLOCK) ON ac.Subtype = s.Id
WHERE
YEAR(aa.CreateDate) = (SELECT YEAR
FROM [dbo].[KPIS] k1 (NOLOCK)
WHERE k1.Id = @Id)
GROUP BY
s.Id, s.Description, b.BranchOfficeId
SELECT
s.Id AS IdCategory,
s.Description AS Category,
COUNT(s.Description) AS TotalMonth
INTO
#AuditMonth
FROM
[dbo].[Audit] aa (NOLOCK)
INNER JOIN
[dbo].[AuditActOrCondition] a (NOLOCK) ON aa.Id = a.IdAudit
INNER JOIN
[dbo].[ActOrCondition] ac (NOLOCK) ON a.IdActCondition = ac.Id
INNER JOIN
[dbo].[ACType] t (NOLOCK) ON ac.Type = t.Id
INNER JOIN
[dbo].[ACSubType] s (NOLOCK) ON ac.Subtype = s.Id
WHERE
MONTH(aa.CreateDate) = (SELECT MONTH
FROM [dbo].[KPIS] k1 (NOLOCK)
WHERE k1.Id = @Id)
GROUP BY
s.Id, s.Description
SELECT
y.IdCategory, y.Category,
ISNULL(m.TotalMonth,0) AS TotalMonth,
y.TotalYEAR
FROM
#AuditYear y
LEFT JOIN
#AuditMonth m ON y.IdCategory = m.IdCategory
Но когда я обновляю свой комплекс введите только столбцы:
public int IdCategory { get; set; }
public string Category { get; set; }
public int TotalMonth { get; set; }
public Nullable<int> TotalYEAR { get; set; }
Может кто-нибудь объяснить мне, почему я не могу получить BranchOfficeId
значение? С уважением
Set [Вредные Привычки пнуть - положить NOLOCK везде] (http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) - это не рекомендуется * использовать это везде - совсем наоборот! –