Выберите запрос, когда значение одного столбца совпадает с именем столбца - PullRequest
0 голосов
/ 01 апреля 2020

Таким образом, у меня есть этот запрос, в котором мне нужно выбрать значение вычитания родительского с бизнес-кодами.

Например, допустим, в таблице контейнеров у нас есть родительское значение 0,39 и дочернее значение 0,7, чем значение из выбора будет -0,31.

Теперь это значение (-0,31) мне нужно умножить на значение столбца «Качество», которое находится в другой таблице. Чем мне нужны 3 верхних значения. Это означает упорядочение по дес c курса.

Но, конечно, его следует умножить, когда NetNames равен BetNames, а значение столбца Codes равно одному столбцу в контейнере таблицы. (Q_1, Q_2, Q_3). Я заблудился здесь, ребята.

Ниже приведена информация о моих таблицах.

/*Table Container*/
BetNamesID |   Parent_B_Id   |  Year  |   Month   |   Q_1 |   Q_2   |  Q_3 
    1         null              2020       5        0.36    0.3       0.21
    6            2              2020       8        0.39    0.64      1.0
    7            1              2020       9        0.76    0.65      0.29
    8            3              2020       13       0.62    0.34      0.81
    9            2             2020       2        0.28    0.8       1.0

/*Table Configuration*/
NetNames     |  Codes  |   Quality   
 Test 1         Q_1          5     
 Test 2         Q_5          7     
 Test 3         Q_2          24     
 Test 4         Q_3          98    
 Test 5         Q_4          22     

 /*Table BetNames Info*/
     ID     |  Parent_B_Id  |    Name   
      1         null             Test 1    
      6            2             Test 2    
      7            1             Test 3     
      8            3             Test 4    
      9            2            Test 5   

Что я делал до сих пор, так это запрос:

SELECT
  child.[BetNamesID],
  child.[Parent_B_Id],
  child.[Q_1] - parent.[Q_1] AS Q_1,
  child.[Q_2] - parent.[Q_2] AS Q_2,
  child.[Q_3] - parent.[Q_3] AS Q_3,
  // this is just a test case.. this is how it is supposed in my mind(child.[Q_3] - parent.[Q_3]) * qualityvalue AS Q_3, //this is how it is supposed to be
  , n.name

  FROM [dbo].[Container] child
    join [dbo].[Container] parent on child.Parent_B_Id = parent.BetNamesID
    join dbo.NetNames n on n.id = parent.Parent_B_Id //with this I get the names for BetNamesID

И это результат моего запроса до сих пор:

BetNamesID |   Parent_B_Id  |   Q_1 |   Q_2   |  Q_3 
    3            2             0.21    -0.3      -0.1
    5            4            -0.39    0.64      -0.9
    8            5             0.99    0.65      0.59

Теперь мне нужно умножить значения столбцов Q_1, Q_2, Q_3 на значения, найденные в таблице конфигурации (столбец Качество), только когда BetNames равно NetNames, а значение строки Codes равно столбцу Q_1, Q_2 или Q_3.

Это ожидаемые значения.

 BetNamesID |   Parent_B_Id  |   Q_1               |   Q_2                  |      Q_3 
  3            2            1.05‬(0.21 * 5)       -7.2(-0.3* 24)            -9.8 (-0.1* 98) 
  5            4            1.95(0.39*5)         15.36(0.64*24)             -88.2 (-0.9*98) 

Как появился новый стол? Как я могу присоединиться? Как работает условие where в этом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...