kirthiga S Ответов: 1

Как получить значение, разделив одно и то же значение столбца


У меня есть образец таблицы, как показано ниже

Sno	ColA	ColB	ColC	Perc
1	AA	A01	10	12.50
2	AA	A02	25	31.25
3	AA	A03	15	18.75
4	AA	A04	30	37.50
5	AA	AT	80	100.00
6	BB	B01	20	30.77
7	BB	B02	20	30.77
8	BB	B03	15	23.08
9	BB	B04	10	15.38
10	BB	BT	65	100.00


Я должен прибыть в колонну перк.
Perc = ColC*100/(ColC, где ColB='AT'), где ColA='AA' аналогично
Perc = ColC*100/(ColC, где ColB='BT'), где ColA='BB'

(т)
Perc=10*100/80=12.50
Perc=25*100/80=31,25

Что я уже пробовал:

Как цветок колонка проц путем деления значений в одном столбце

Richard MacCutchan

Это не имеет смысла, у вас уже есть ценности. Хотя невозможно понять, как вы можете вычислить их, когда вам дано только одно число.

kirthiga S

Это не единичное значение, это сумма этой группы. У меня прибыли все остальные ценности.

Naga Sindhura

AT и BT-это две фиксированные долины в ColB? Что делать, если у вас есть следующая комбинация? В этот раз вы пойдете на КТ, ДТ,...? Сначала проверьте другие зависимости, где вы можете решить идеальную комбинацию, например, для использования AA AT, а для использования BB BT... может быть какая-то таблица, чтобы решить эту комбинацию во время выполнения, если у вас нет фиксированной комбинации.
Кола, ColB
ГК С01
ГК С02
ГК С03
ГК С04

1 Ответов

Рейтинг:
2

Richard Deeming

Что-то вроде этого должно сработать:

SELECT
    A.Sno,
    A.ColA,
    A.ColB,
    A.ColC,
    Round(100. * A.ColC / B.ColC, 2) As Perc
FROM
    YourTable As A
    INNER JOIN YourTable As T
    ON T.ColA = A.ColA
    And Len(T.ColB) = 2
    And T.ColB = STUFF(T.ColA, 2, 1, 'T')
;
Выход:
Sno    ColA    ColB    ColC    Perc
-----------------------------------------------
1      AA      A01     10      12.50000000000
2      AA      A02     25      31.25000000000
3      AA      A03     15      18.75000000000
4      AA      A04     30      37.50000000000
5      AA      AT      80      100.00000000000
6      BB      B01     20      30.77000000000
7      BB      B02     20      30.77000000000
8      BB      B03     15      23.08000000000
9      BB      B04     10      15.38000000000
10     BB      BT      65      100.00000000000