Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Reent en 2 Septiembre 2020, 11:26 am



Título: SQL if statement en un counter
Publicado por: Reent en 2 Septiembre 2020, 11:26 am
Muy buenas estoy intentando hacer que un counter se multiplique si el tramaño de un row es igual a x ejemplo:

Código
  1. SELECT art.art_id, histkomm.cnt , COUNT(decode(lhmd.abmz, 600, 2, 1))/*aqui necesito que el counter sea dos, si es el tamaño "x" y uno, si no lo es.*/, sysdate
  2.    FROM lhm, art, sektor,lhmdef lhmd, (SELECT hst.artnr artnr,  COUNT(*) cnt
  3.                                        FROM  historie_v hst
  4.                                        WHERE hst.created > sysdate-90
  5.                                        AND hst.typ_id =102
  6.                                        AND hst.lagnr=13 GROUP BY  hst.artnr ) histkomm
  7.    WHERE histkomm.artnr = art.artnr
  8.    AND art.art_id = sektor.art_id (+)
  9.    AND lhm.lhm_id = sektor.lhm_id
  10.    AND lhm.lhmdef_id = lhmd.lhmdef_id
  11.    AND lhm.lhmstat=1
  12.    AND lhm.lag_id=13
  13.    AND nvl(lhm.auftr_id, 0)=0
  14.    GROUP BY art.art_id, histkomm.cnt
  15.    ORDER BY 3 DESC;

Por el momento el counter hace su trabajo bien pero no me funciona hacer lo que quiero.

un saludo!


Título: Re: SQL if statement en un counter
Publicado por: Carloswaldo en 1 Octubre 2020, 22:17 pm
No entiendo muy bien lo que quieres lograr, ¿pretendes que el COUNT cuente como 2 registros si el valor en cierta columna equivale a x? Si es así mejor usas un SUM ¿no? Así te va a sumar lo que sea que te devuelva el DECODE.