У меня есть эта таблица базы данных 3Комбинирование 3 таблицы в SQL Server
tblSites
| Sites | SiteName |
AA AaaaaaaA
BB BaaaaaaB
CC CaaaaaaC
DD DaaaaaaD
tblWeb
| WebID | AppName | AppUrl | ServerName |
1 aWeb www.aWeb.com ServerA
1 bWeb www.bWeb.com ServerA
1 cWeb www.cWeb.com ServerB
1 dWeb www.dWeb.com ServerA
1 eWeb www.eWeb.com ServerC
1 fWeb www.fWeb.com ServerC
1 gWeb www.gWeb.com ServerD
1 hWeb www.hWeb.com ServerD
tblWebServices
| Sites | WebID | SummaryState | Last_Check |
A 1 OK 02/01/2016 10:00:00.000
A 1 Critical 02/01/2016 10:00:04.000
A 2 OK 02/01/2016 10:00:04.000
A 2 Critical 02/01/2016 10:00:06.000
A 3 OK 02/01/2016 10:00:07.000
A 3 OK 02/01/2016 10:00:09.000
A 4 OK 02/01/2016 10:00:10.000
A 4 OK 02/01/2016 10:00:12.000
A 5 Critical 02/01/2016 10:00:14.000
A 5 OK 02/01/2016 10:00:17.000
A 6 OK 02/01/2016 10:00:20.000
A 6 OK 02/01/2016 10:00:23.000
A 7 OK 02/01/2016 10:00:25.000
A 7 Critical 02/01/2016 10:00:36.000
A 8 OK 02/01/2016 10:00:39.000
A 8 OK 02/01/2016 10:00:40.000
B 1 Critical 02/02/2016 10:00:00.000
B 1 OK 02/02/2016 10:00:04.000
B 2 Critical 02/02/2016 10:00:04.000
B 2 OK 02/02/2016 10:00:06.000
B 3 Critical 02/02/2016 10:00:07.000
B 3 Critical 02/02/2016 10:00:09.000
B 4 Critical 02/02/2016 10:00:10.000
B 4 Critical 02/02/2016 10:00:12.000
B 5 OK 02/02/2016 10:00:14.000
B 5 Critical 02/02/2016 10:00:17.000
B 6 Critical 02/02/2016 10:00:20.000
B 6 Critical 02/02/2016 10:00:23.000
B 7 Critical 02/02/2016 10:00:25.000
B 7 OK 02/02/2016 10:00:36.000
B 8 Critical 02/02/2016 10:00:39.000
B 8 Critical 02/02/2016 10:00:40.000
Это таблица 3 базы данных. tblWeb.WebID = tblWebServices.WebID
И мне нужно, чтобы получить AppName из tblWeb и конвертировать сайты tblSites в колонке , а также под сайты должны быть «Последняя» Резюме Состояние APPNAME в tblWebServices и все сайты, которые не имеет данных, должны быть помечены как «нет данных»
Ожидаемый результат таков:
Expected Output:
| AppName | Site-AA | Site-BB | Site-CC | Site-DD |
aWeb Critical OK No Data Found No Data Found
bWeb Critical OK No Data Found No Data Found
cWeb OK Critical No Data Found No Data Found
dWeb OK Critical No Data Found No Data Found
eWeb OK Critical No Data Found No Data Found
fWeb OK Critical No Data Found No Data Found
gWeb Critical OK No Data Found No Data Found
hWeb OK Critical No Data Found No Data Found
Это мой желаемый результат. Я уже ищу все примеры и вопросы здесь, но мне ничего не кажется. Может кто-нибудь помочь мне настроить некоторые коды в SQL Server относительно этого вывода.
Это коды, которые я устанавливаю некоторые ответы в этой задаче
DECLARE @sql NVARCHAR(MAX)
SET @sql = ''
SELECT @sql = 'SELECT WebID ' + CHAR(10)
SELECT @sql = @sql + ' , ISNULL(MAX(CASE WHEN Sites = ''' + Sites + '''THEN summary_state END), ''No Data Found'') AS ' + QUOTENAME('Site-'+Sites) + CHAR(10)
FROM tblSites
ORDER BY Sites
SELECT @sql = @sql + 'FROM (SELECT *, rn = ROW_NUMBER() OVER(PARTITION BY Sites , WebID ORDER BY Last_Check DESC) FROM tblWebServices) t WHERE rn = 1 GROUP BY WebID ORDER BY WebID '
PRINT @sql
EXEC sp_executesql @sql
Выходной сигнал этого кодов, как это
| WebID | Site-AA | Site-BB | Site-CC | Site-DD |
1 Critical OK No Data Found No Data Found
2 Critical OK No Data Found No Data Found
3 OK Critical No Data Found No Data Found
4 OK Critical No Data Found No Data Found
5 OK Critical No Data Found No Data Found
6 OK Critical No Data Found No Data Found
7 Critical OK No Data Found No Data Found
8 OK Critical No Data Found No Data Found
Я не нуждался в WEBID присутствовать. Мне нужно AppName. Пожалуйста, помогите мне с этим Ваш комментарий и ответ будут большой помощью.
У вас есть фиксированное количество 'сайта-code' –
No. Там нет фиксированного количества сайтов-коды есть вероятность того, что есть дополнительный – Elphrian