Я пытаюсь получить ссылку на последнюю (последнюю) статью блога за каждый месяц, используя хранимую процедуру, но не могу найти пути решения моей проблемы.
В настоящее время мой код ниже повторяет столбец 'LINK' (последняя статья в блоге) примерно так:
SELECT AVG(DATEPART(mm, b.blog_date)) AS MonthNum --CANNOT USE MONTHNUM IN ORDER BY UNLESS WRAPPED WITH AVG() [average], weird but works
, CAST(DateName(month, DateAdd(month, Datepart(MONTH, b.blog_date), -1)) AS varchar(24)) AS MONTH
, CAST(DATEPART(YEAR, b.blog_date) AS varchar(4)) AS YEAR
, CAST(count(b.blog_content) AS varchar(24)) as ARTICLES
, (SELECT TOP (1) b.blog_url
FROM Management.Blog
WHERE (website_owner_id = 2)
GROUP BY blog_date
, blog_url
ORDER BY blog_date DESC
) AS LINK
, CAST(DateName(month, DateAdd(month, Datepart(MONTH, b.blog_date), -1)) AS varchar(24)) + CAST(DATEPART(YEAR, b.blog_date) AS varchar(4)) AS ID
, blog_date as DATE
FROM Management.Blog b
WHERE b.website_owner_id = 2
GROUP BY CAST(DateName(month, DateAdd(month, Datepart(MONTH, b.blog_date), -1)) AS varchar(24))
, CAST(DATEPART(YEAR, b.blog_date) AS varchar(4))
, b.blog_url
, blog_date
, CAST(DateName(month, DateAdd(month, Datepart(MONTH, b.blog_date), -1)) AS varchar(24)) + CAST(DATEPART(YEAR, b.blog_date) AS varchar(4))
ORDER BY DATE DESC
Я понимаю, что код ужасно читать (и, вероятно, выполнять на SQL-сервере тоже), но я нахожусь в состоянии, когда я только новичок в SQL-сервере (выходец из MySQL, где мне действительно приходилось использовать базовый запрос выбора), и я открыт для любых предложений по изменению запроса и / или оформления таблицы.
По существу не должно быть дубликатов столбца ID (который действительно добавляется только для помощи в удалении дубликатов и может быть опущен при необходимости).