SQL Server: выберите из нескольких таблиц и вычислите проценты

#sql #sql-server

#sql #sql-server

Вопрос:

У меня есть четыре таблицы, и мне нужно будет извлечь из них данные для вычисления процента

Таблица1

 ID FK1 FK2
------------------
1  1   1
2  2   2
3  3   3 
  

Таблица2

 ID Name
------------------
1  L1   
2  A1
3  B 
  

Таблица3

 ID FK3
------------------
1  1    
2  2
3  3 
  

Таблица4

 ID Name
------------------
1  BA   
2  N    
3  CE   
  

Теперь мне нужно получить имя из table4, которое будет отображаться в виде отдельных строк, а затем имя из table2, которое будет указано в виде отдельных столбцов, и тогда значение будет представлять собой процент от записи из table4:

 Name   L1      A1       B
---------------------------
BA     20(%)   40(%)  40(%)
N      30(%)   20(%)  30(%)
CE     15(%)   15(%)  70(%)
  

Поскольку есть ссылки, я приведу пример того, какой вопрос у меня сейчас

 select t3.Name
from table1 t1 (nolock)
join table2 t2 (nolock) on t1.FK1 = t2.ID
join table3 t3 (nolock) on t1.FK2 = t3.ID
join table4 t4 (nolock) on t2.FK3 = t4.ID
  

У кого-нибудь есть идеи, как это сделать? Большое вам спасибо

Комментарии:

1. Почему у вас есть 4 NOLOCK подсказки к запросу? Вы понимаете последствия использования такой подсказки запроса, верно? Если вас действительно устраивают потенциально ошибочные данные, зачем использовать 4 подсказки, а не изменять весь изолированный уровень запроса?

2. Мне не ясно, что такое процентное вычисление. Опишите, как вы будете вычислять с помощью карандаша и бумаги. Как вы получаете 20% для ячейки BA / L1?