2013-10-25 4 views
0

В принципе у меня есть две таблицы, одна из которых представляет собой набор значений, которые указывают на скоринг, а другая - основная информация, для которой необходимо указать счет.TSQL - Объединение двух таблиц без общих столбцов

Основная информация таблица (А):

 
Calculations Results 
Profit   0.29 
Profit Ratio  0.685 

Скоринг таблицы фиксировать и имеет набор диапазонов (B)

 
SCORE GRADE RATIO START RATIO END 
0.0000 Poor 0   0.5 
10.0000 Good 0.5   0.5999 
20.0000 Great 0.6   0.6999 
etc 

мне нужна таблица с результатом

 
Calculations Results Score Grade 
Profit   0.29 0.0000 Poor 
Profit Ratio 0.685 20.000 Great 

Я уже написал несколько битов кода, но никто не работает. Я не могу понять, как я могу сделать JOIN, чтобы выбрать Score and Grade, когда a.result между b.ratio_start и b.ratio_end без каких-либо изменений для объединения двух таблиц.

Я также попробовал вложенный оператор Select, но получил массу ошибок, одна из которых побудила меня использовать предложение EXISTS, но я не вижу, как это можно сделать.

Последним средством было бы отказаться от использования таблицы (я создал таблицу с цифрами, представленными отделом, думая, что это упростит ситуацию) и привести значения таблиц в оператор case.

Как вы думаете?

ОБНОВЛЕНИЕ Я над «thunk» это !!! Объединение без явного говоря РЕГИСТРИРУЙТЕСЬ работы хх

ответ

2

объединение не обязательно означает равенство:

select * 
from inf 
join score on (inf.results between score.ratio_start and score.ratio_end); 
+0

О? Я понятия не имел, что ты можешь это сделать! Спасибо, попробуем тоже xx –

Смежные вопросы