SQL.Как объединить две записи с одинаковым идентификатором в одну строку на основе значений в столбце - PullRequest
0 голосов
/ 12 декабря 2018

SQL Server 2012: как объединить две записи с одинаковым идентификатором (TransportOrder) в одну строку на основе значений в столбце (PalletType)?

Пример: заказ 678 состоит из двух строк с 1 европоддоном en 3BetweenEuropallet.Таким образом, для порядка требуется только 1 TransportEuropalletPlace.

Вывод должен быть в случае порядка 678, одна строка, сообщающая, что всего 4 европоддона (сумма 1 + 3 из двух строк) и 1 TransportEuropalletPlace (SUM 1 +0)

Как этого добиться с помощью SQL-запроса?

Исходный вывод:

TransportOrder   PalletType            Quantity    TransportEuropalletPlace
--------------------------------------------------------------------------
      123        Minipallet               1                0.5
      345        Europallet               1                1
      678        Europallet               1                1
      678        BetweenEuropallet        3                0
      900        Europallet               2                2

Требуется вывод для заказа 678:

TransportOrder   PalletType    Quantity    TransportEuropalletPlace 
--------------------------------------------------------------------------
     123         Minipallet       1              0.5 
     345         Europallet       1              1 
     678         Europallet       4              1 
     900         Europallet       2              2 

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы должны сгруппировать по столбцу TransportOrder, как в:

select
  transportorder,
  max(pallettype) as pallettype,
  sum(quantity) as quantity,
  sum(transporteuropalletplace) as transporteuropalletplace
from my_table
group by transportorder
0 голосов
/ 12 декабря 2018

Это должно помочь вам начать:

SELECT
    TransportOrder,
    SUM(ISNULL(Europallet,0) + ISNULL(BetweenEuropallet, 0)) as 'Pallets'
FROM Table_Name
GROUP BY TransportOrder
...