#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?