- Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 18 anos, 1 mês atrás por chduarte.
-
AutorPosts
-
28 de maio de 2006 às 8:15 pm #75746drhoffmanParticipante
boas tenho este query que me da o tipo de operacoes e me conta quantas operacoes tive na semana passada mas queria o output doutra forma,o query é este
select data,tipo_op,contagem_op
from(select int.data as data,t.tipo_op as tipo_op,count(t.id_tipo_op) as contagem_op
from interv int,operacoes op,tipo_op t
where int.data=op.data
and int.id_jardim=op.id_jardim
and op.id_tipo_op=t.id_tipo_op
and int.data<=trunc(sysdate,'day')-2 and int.data>=trunc(sysdate,’day’)-6
group by int.data,t.tipo_op
)
order by 2;o output é
DATA TIPO_OP CONTAGEM_OP
———- ————————————————– ———–
10-05-2006 PLANTACAO 1
10-05-2006 REGA 1e eu queria uma coisa deste tipo
10-05-2006 PLANTACAO,REGA 2
alguem me sabe dizer se isto e possivel fazer? agradecia 🙂
20 de dezembro de 2006 às 1:03 am #77650AnônimoVê se ajuda brother…
DECLARE
v_retorno owa_util.vc_arr;
v_string VARCHAR2(30) := ‘123|5|8|30|27|1|8’;FUNCTION quebra_texto (v_texto VARCHAR2, v_separador VARCHAR2)
RETURN OWA_UTIL.vc_arr
IS
v_contador NUMBER := 1;
v_posicao NUMBER := 1;
acum VARCHAR2 (4000) := v_texto;
arr_explode OWA_UTIL.vc_arr;
BEGINIF v_texto IS NULL OR v_separador IS NULL THEN RETURN arr_explode; END IF; WHILE v_posicao 0 LOOP v_posicao := INSTR (acum, v_separador); IF v_posicao = 0 THEN arr_explode (v_contador) := acum; ELSE arr_explode (v_contador) := SUBSTR (acum, 1, v_posicao - 1); acum := SUBSTR (acum, v_posicao + LENGTH (v_separador)); v_contador := v_contador + 1; END IF; END LOOP; RETURN arr_explode;
END quebra_texto;
BEGIN
v_retorno := quebra_texto(v_string, ‘|’);
FOR x IN 1..v_retorno.COUNT
LOOP
DBMS_OUTPUT.put_line(‘Texto: ‘ || v_retorno(x));
END LOOP;END;
Abraço,
20 de dezembro de 2006 às 1:03 am #77816AnônimoVê se ajuda brother…
DECLARE
v_retorno owa_util.vc_arr;
v_string VARCHAR2(30) := ‘123|5|8|30|27|1|8’;FUNCTION quebra_texto (v_texto VARCHAR2, v_separador VARCHAR2)
RETURN OWA_UTIL.vc_arr
IS
v_contador NUMBER := 1;
v_posicao NUMBER := 1;
acum VARCHAR2 (4000) := v_texto;
arr_explode OWA_UTIL.vc_arr;
BEGINIF v_texto IS NULL OR v_separador IS NULL THEN RETURN arr_explode; END IF; WHILE v_posicao 0 LOOP v_posicao := INSTR (acum, v_separador); IF v_posicao = 0 THEN arr_explode (v_contador) := acum; ELSE arr_explode (v_contador) := SUBSTR (acum, 1, v_posicao - 1); acum := SUBSTR (acum, v_posicao + LENGTH (v_separador)); v_contador := v_contador + 1; END IF; END LOOP; RETURN arr_explode;
END quebra_texto;
BEGIN
v_retorno := quebra_texto(v_string, ‘|’);
FOR x IN 1..v_retorno.COUNT
LOOP
DBMS_OUTPUT.put_line(‘Texto: ‘ || v_retorno(x));
END LOOP;END;
Abraço,
20 de dezembro de 2006 às 1:04 am #77652AnônimoDesculpa brother, respondi errado…
Vou desenvolver solução pra tua resposta e te retorno.abraço,
Trevisolli.
20 de dezembro de 2006 às 1:04 am #77818AnônimoDesculpa brother, respondi errado…
Vou desenvolver solução pra tua resposta e te retorno.abraço,
Trevisolli.
20 de dezembro de 2006 às 4:48 am #77654chduarteParticipanteVoce pode utilizar o proprio SQL*Plus para dar uma boa melhorada ai:
A query:
select trunc(data) data,tipo_op,contagem_opO resto da query permanece igual.
No SQL*Plus digite o seguinte:
SQL> break on data
SQL> compute sum of contagem_op on data
SQL> spool c:pastanome_do_relatorio
SQL>
SQL> spool offVoce tera algo assim:
DATA TIPO_OP CONTAGEM_OP
10-05-2006 PLANTACAO 1
REGA 1
REGA2 1
PLANTACAO2 1
sum **************************** 411-05-2006 PLANTACAO 2
REGA 1
REGA2 2
PLANTACAO2 1
sum **************************** 6Grande abraco[]
Carlos Henrique Duarte
DBA Oracle 11i20 de dezembro de 2006 às 4:48 am #77820chduarteParticipanteVoce pode utilizar o proprio SQL*Plus para dar uma boa melhorada ai:
A query:
select trunc(data) data,tipo_op,contagem_opO resto da query permanece igual.
No SQL*Plus digite o seguinte:
SQL> break on data
SQL> compute sum of contagem_op on data
SQL> spool c:pastanome_do_relatorio
SQL>
SQL> spool offVoce tera algo assim:
DATA TIPO_OP CONTAGEM_OP
10-05-2006 PLANTACAO 1
REGA 1
REGA2 1
PLANTACAO2 1
sum **************************** 411-05-2006 PLANTACAO 2
REGA 1
REGA2 2
PLANTACAO2 1
sum **************************** 6Grande abraco[]
Carlos Henrique Duarte
DBA Oracle 11i -
AutorPosts
- Você deve fazer login para responder a este tópico.