현재 검색어 필드/열의 제목을 현재 연도로 지정하는 방법이 있습니까? 예를 들어 아래의 쿼리에서 필드 이름과 같은 ID는 TwoPriorYrs_sales 대신 sales2012가됩니다. 목적은 그 2015 년 월 1 일에 필드가 자동으로 뭔가 같은동적 열 이름 연도 별
(SELECT SUM(sales_dol)
FROM dbo.sumsales
WHERE (a.part_code = part_code)
AND (YEAR(sale_date) = YEAR(GETDATE()) - 2)) AS ('sales'+ (YEAR(getdate())-2))
감사를 할 수있는 방법이
(SELECT SUM(sales_dol)
FROM dbo.sumsales
WHERE (a.part_code = part_code)
AND (YEAR(sale_date) = YEAR(GETDATE()) - 2)) AS TwoPriorYrs_sales
sales2013이 될 것입니다 것입니다!
M.Ali? 동적 SQL을 여러 열이있는 쿼리에 넣을 수있는 위치는 어디입니까? 각 열을 개별적으로 선언해야합니까? 다음은 SQL 내가 지난 2 열에 연도를 넣어 찾고 있어요 :
SELECT a.cust_code, a.part_code, c.part_desc, c.part_status, c.part_ddate, c.part_dtype,
(SELECT SUM(qty_sold) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()))) AS YTD_qty, ROUND
((SELECT SUM(sales_dol) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()))), 2) AS YTD_sales,
(SELECT SUM(qty_sold) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 1) AND (sale_date <= DATEADD(Year, - 1,
GETDATE()))) AS YTDLastYr_qty, ROUND
((SELECT SUM(sales_dol) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 1) AND (sale_date <= DATEADD(Year, - 1,
GETDATE()))), 2) AS YTDLastYr_sales,
(SELECT SUM(qty_sold) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 1)) AS LastYr_qty, ROUND
((SELECT SUM(sales_dol) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 1)), 2) AS LastYr_sales,
(SELECT SUM(qty_sold) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 2)) AS TwoPriorYrs_qty, ROUND
((SELECT SUM(sales_dol) AS Expr1
FROM dbo.sumsales AS b
WHERE (a.cust_code = cust_code) AND (a.part_code = part_code) AND (YEAR(sale_date) = YEAR(GETDATE()) - 2)), 2) AS TwoPriorYrs_sales
FROM dbo.sumsales AS a INNER JOIN
dbo.partmstr AS c ON a.part_code = c.part_code INNER JOIN
dbo.orderfrom AS d ON a.cust_code = d.cust_code
WHERE (YEAR(a.sale_date) >= YEAR(GETDATE()) - 2)
GROUP BY a.cust_code, a.part_code, c.part_desc, c.part_status, c.part_ddate, c.part_dtype
결과 집합의 열 이름은 항상 SQL 쿼리에있는 정적 식별자의 이름입니다. 난 당신이 정말로 이런 게 필요하면, 당신은 동적 SQL을 (사용하여 SQL을 구성하고 다음 sp_executesql을 사용해야합니다) 생각합니다. 그런 말로, 나는 항상 그것을 스스로 피할 수있었습니다. M. Ali의 해결책을 참조하십시오. –