получить сумму столбцов в следующем столбце sql

<table border="1">
  <tr><th>Pcode</th><th>TCode</th><th>TName</th><th>CCode</th><th>Rate</th><th>Total=sum(rates of all PCodes)</th></tr>
  <b><tr><td>12345</td><td>200</td><td>200</td><td>12</td><td>2000</td><td>8000</td></tr>
  <tr><td>12345</td><td>201</td><td>200</td><td>12</td><td>1000</td><td>8000</td></tr>
  <tr><td>12345</td><td>202</td><td>200</td><td>12</td><td>2000</td><td>8000</td></tr>
  <tr><td>12345</td><td>205</td><td>200</td><td>12</td><td>3000</td><td>8000</td></tr>
  <tr><td>12346</td><td>200</td><td>200</td><td>12</td><td>4000</td><td>32000</td></tr>
  <tr><td>12346</td><td>204</td><td>200</td><td>12</td><td>5000</td><td>32000</td></tr>
  <tr><td>12346</td><td>208</td><td>200</td><td>12</td><td>5000</td><td>32000</td></tr>
  <tr><td>12346</td><td>1235</td><td>200</td><td>12</td><td>3000</td><td>32000</td></tr>
  <tr><td>12346</td><td>12</td><td>200</td><td>12</td><td>7000</td><td>32000</td></tr>
  <tr><td>12346</td><td>100</td><td>200</td><td>12</td><td>8000</td><td>32000</td></tr>
  
</table>
<p>I have a table with Pcode, Tcode, TName, CCode, Rate. Need to find the sum under Pcode as Total in next column</p>

Я хочу, чтобы этот столбец таблицы ‘(Total)’ был извлечен вместе со всеми столбцами в таблице ниже(SQL).

Я попробовал ROLLUP и group by no solution еще.

итог, который необходимо сгруппировать по Pcode и получить эту сумму в следующий столбец.

TIA,

2 ответа

  1. With your_table_CTE as (
        select C.x,A.y,B.x from DFG inner join A, inner join B, inner join C
    )
    
    select a.pcode, a.TCode, a.TName, a.CCode, a.Rate, b.Total
    from your_table_CTE a
    join (
      select pcode, sum(rate) as Total
      from your_table_CTE
      group by pcode
    ) b
    on a.pcode = b.pcode
    
  2. Вам только нужно использовать GROUP BY. В этом решении используется общее табличное выражение (замените tempTableимя таблицы):

    ;WITH TotalByPCode (PCode, Total) AS (
        SELECT PCode, SUM(Rate) FROM tempTable GROUP BY PCode
        )
    
    SELECT R.PCode, R.TCode, R.TName, R.CCode, R.Rate, T.Total
    FROM tempTable R JOIN TotalByPCode T ON R.PCode = T.PCode
    ;