Как я могу получить:

  pn     | min max
  ------ | ------
  ABC123 | 0,0
  ABC123 | 1,1
  ABC123 | 1,1
  ABC123 | 1,1

Кому:

  pn     | min max
  ------ | -------
  ABC123 | 3,3
  • База данных Oracle 11g
  • PL / SQL 11.2.4.0

Вот что у меня сейчас:

SELECT
   PN_INVENTORY_LEVEL.PN,
   PN_INVENTORY_LEVEL.MAXIMUM_STOCK || ',' || PN_INVENTORY_LEVEL.MINIMUM_STOCK AS MIN_MAX
FROM
   PN_INVENTORY_LEVEL
WHERE ("PN_INVENTORY_LEVEL"."PN" = :PN)
3
joshmc 8 Сен 2016 в 16:46

3 ответа

Лучший ответ

Попробуй использовать

 SELECT
               PN_INVENTORY_LEVEL.PN,
               Sum(PN_INVENTORY_LEVEL.MAXIMUM_STOCK) || ',' || sum(PN_INVENTORY_LEVEL.MINIMUM_STOCK) AS MIN_MAX
    FROM
               PN_INVENTORY_LEVEL
    WHERE ("PN_INVENTORY_LEVEL"."PN" = :PN)
group by PN_INVENTORY_LEVEL.PN
5
Christian 8 Сен 2016 в 13:50

Пытаться

SELECT pn, SUM(min) as min, SUM(max) as max FROM PN_INVENTORY_LEVEL GROUP BY pn
0
cmnardi 8 Сен 2016 в 13:49

Я считаю, что это будет ответ на ваш вопрос, если в одном столбце у вас есть min_max в виде строки (замените tab на your-table-name ):

WITH
tab1 AS(
SELECT t.pn,
       t.min_max,
       INSTR(t.min_max, ',',1) POS
FROM tab t
),
tab3 AS 
(
SELECT tt.pn,
       SUBSTR(tt.min_max, 1,tt.pos-1) st,
       SUBSTR(tt.min_max,tt.pos+1,LENGTH(tt.min_max)-tt.pos) nd
FROM tab1 tt
)
SELECT ttt.pn,
       SUM(ttt.st) || ',' || SUM(ttt.nd) min_max
FROM tab3 ttt
GROUP BY ttt.pn

Это дает мне результат:

1   ABC123  3,3
0
massko 8 Сен 2016 в 13:59