изменить, чтобы декодировать или - PullRequest
0 голосов
/ 17 мая 2018

Мне нужно изменить этот код для декодирования или любого решения, чтобы убедиться, что результат для SELL (-ve значение) и BUY (+ ve значение). и он должен отображаться в 1 строке, поэтому в моем отчете оракула столбец будет рядом для ПОКУПАТЬ | ПРОДАТЬ.

sum(case when (o.tran_qty * o.price) < 0 
then (o.tran_qty * o.price) else 0    end) as sell_t,
sum(case when (o.tran_qty * o.price) > 0 
then (o.tran_qty * o.price) else 0 end) as buy_t,

на данный момент в построителе отчетов я получил этот результат. enter image description here

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

SELECT 
COUNT(decode(substr(o.tran_no,1,1), 'B', 'BUY')) Buy,
COUNT(decode(substr(o.tran_no,1,1),'S', 'SELL')) sell,
nvl('D.EXCH_CODE','01') AS CODE,
sum(case when (o.tran_qty * o.price) < 0 then
   (o.tran_qty * o.price) else   0 end) as sell_t,
sum(case when (o.tran_qty * o.price) > 0 then 
   (o.tran_qty * o.price) else 0 end) as buy_t,
o.client_no,c.client_name,
sum(o.tran_qty*o.price)total,o.branch_code,r.descr,
C.TDR_CODE
from bos_m_ledger o,bos_m_para r,bos_m_client c,
bos_cltype g,BOS_M_STOCK   D
WHERE
r.para_type='BRANCH'
AND R.PARA_CODE = O.BRANCH_CODE
and o.client_no=c.client_no
AND O.STOCK_NO =D.STOCK_NO
AND D.CSTAMP_EXPIRY_DATE IS NOT NULL
AND C.CLIENT_NO='3JF0391'
and g.nbrk_rate=1
and c.client_type=g.client_type
and o.tdr_code=c.tdr_code
and o.tran_type= 'CON'
AND TO_DATE(TO_CHAR(O.TRAN_DATE,'MON'),'MON')=TO_DATE(:P_MONTH,'MON')
AND TO_DATE(TO_CHAR(O.TRAN_DATE,'YYYY'),'YYYY') = TO_DATE(:P_YEAR,'YYYY')
group by  
substr(o.tran_no,1,1),o.client_no,o.branch_code,r.descr,c.client_name,
C.TDR_CODE
ORDER BY O.BRANCH_CODE, C.TDR_CODE,O.CLIENT_NO

1 Ответ

0 голосов
/ 17 мая 2018

Используйте следующее с decode:

select ClientNo "Client No", 
       ClientName "Client Name", 
       sum(decode(contract_type,'Sell',-tran_qty,tran_qty)) "No_Of_Contract", 
       sum(decode(contract_type,'Sell',-tran_qty * price,tran_qty * price)) "Total" 
  from Sales
 group by ClientNo, ClientName
 order by 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...