'Row-wise calculation of two column values and set to third column by javascript/jquery

Current Output:

https://i.stack.imgur.com/4jFTM.png

Expected Output:

https://i.stack.imgur.com/fusiJ.png

As shown in above image, OnChange of select box the value of result will be set as (rating*weightage) for particular column. Like, OnChange of third select box, only third textbox of result column will show the calculated value.

table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
.rating, .result{
    width:95%;
    border-radius:3px;
    padding:6px;
}
<table>
  <tr>
    <th>Rating</th>
    <th>Weightage</th>
    <th>Result</th>
  </tr>
  <tr>
    <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>5</td>
    <td><input type="text" disabled value="10" class="result"></td>
  </tr>
  <tr>
        <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>10</td>
    <td><input type="text" disabled value="30" class="result"></td>
  </tr>
  <tr>
        <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>7</td>
    <td><input type="text" disabled value="7" class="result"></td>
  </tr>
  <tr>
        <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>5</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
  <tr>
        <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>15</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
  <tr>
       <td>
        <select class="rating">
            <option selected value="">Select</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>17</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
</table>


Solution 1:[1]

You can do it like this:

$('.rating').change(function() {
  var v = $(this).val() || 0
  var tr = $(this).closest("tr");
  var n = +tr.find("td:eq(1)").text();
  tr.find(".result").val(v * n)
});

It will get the required informations from the different parts of your code and multiple them into your input.

$('.rating').change(function() {
  var v = $(this).val() || 0
  var tr = $(this).closest("tr");
  var n = +tr.find("td:eq(1)").text();
  tr.find(".result").val(v * n)
});
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td,
th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}

.rating,
.result {
  width: 95%;
  border-radius: 3px;
  padding: 6px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <th>Rating</th>
    <th>Weightage</th>
    <th>Result</th>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>5</td>
    <td><input type="text" disabled value="10" class="result"></td>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>10</td>
    <td><input type="text" disabled value="30" class="result"></td>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>7</td>
    <td><input type="text" disabled value="7" class="result"></td>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>5</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>15</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
  <tr>
    <td>
      <select class="rating">
        <option selected value="">Select</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
    </td>
    <td>17</td>
    <td><input type="text" disabled class="result"></td>
  </tr>
</table>

Solution 2:[2]

If you are trying to update the rows that have null values in Points column, You just need to join the two tables and add a where clause to limit the rows to the ones you want to update. Something like this

UPDATE t2
  SET Points = t.Points
FROM table_1 t
JOIN table_2 t2
  ON t.code = t2.code 
WHERE t2.Points IS NULL  

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Carsten Løvbo Andersen
Solution 2 GoonerForLife