J'ai besoin de montrer la somme d'une colonne, comme:
Comment puis-je créer une somme du "LQ", par exemple:
MON Code: P> 0 + 0 + 38 + 1010 + 216 + 664 CODE> P>
select pla.DSC_ACO,
sum(case when res.cod_ordem_producao like 'LQX%' then 1 else 0 end) as lqx,
sum(case when res.cod_ordem_producao like 'LQP%' then 1 else 0 end) as lqp,
sum(case when res.cod_ordem_producao like 'LQT%' then 1 else 0 end) as LQT,
sum(case when res.cod_ordem_producao like 'LQRT%' then 1 else 0 end) as lqrt,
sum(case when res.cod_ordem_producao like 'LQRZ%' then 1 else 0 end) as lqrz,
sum(case when res.cod_ordem_producao like 'LQZ%' then 1 else 0 end) as LQZ,
sum(case when res.cod_ordem_producao like 'LQRW%' then 1 else 0 end) as lqrw,
sum(case when res.cod_ordem_producao like 'LQW%' then 1 else 0 end) as LQW,
sum(case when res.cod_ordem_producao like 'LQ%' then 1 else 0 end) as Lq,
sum(case when res.cod_ordem_producao like 'LQR%' then 1 else 0 end) as LQR
from QT_QTS.RES_TUBO_REVENIMENTO2 res, QT_QTS.PLA_ORDEM_PRODUCAO pla
where res.COD_ORDEM_PRODUCAO = pla.COD_ORDEM_PRODUCAO
and res.DTH_CRIACAO_REG >= :dthini
and res.DTH_CRIACAO_REG <=:dthfim
group by pla.DSC_ACO
4 Réponses :
J'espère que cela fonctionne :)
select pla.DSC_ACO, sum(case when res.cod_ordem_producao like 'LQX%' then 1 else 0 end) as lqx, sum(case when res.cod_ordem_producao like 'LQP%' then 1 else 0 end) as lqp, sum(case when res.cod_ordem_producao like 'LQT%' then 1 else 0 end) as LQT, sum(case when res.cod_ordem_producao like 'LQRT%' then 1 else 0 end) as lqrt, sum(case when res.cod_ordem_producao like 'LQRZ%' then 1 else 0 end) as lqrz, sum(case when res.cod_ordem_producao like 'LQZ%' then 1 else 0 end) as LQZ, sum(case when res.cod_ordem_producao like 'LQRW%' then 1 else 0 end) as lqrw, sum(case when res.cod_ordem_producao like 'LQW%' then 1 else 0 end) as LQW, sum(case when res.cod_ordem_producao like 'LQ%' then 1 else 0 end) as Lq, sum(case when res.cod_ordem_producao like 'LQR%' then 1 else 0 end) as LQR from QT_QTS.RES_TUBO_REVENIMENTO2 res, QT_QTS.PLA_ORDEM_PRODUCAO pla where res.COD_ORDEM_PRODUCAO = pla.COD_ORDEM_PRODUCAO and res.DTH_CRIACAO_REG >= :dthini and res.DTH_CRIACAO_REG <=:dthfim group by pla.DSC_ACO UNION ALL SELECT 'TOTAL' DSC, SUM(lqx), SUM(lqp), SUM(LQT), SUM(lqrt), SUM(qrz), SUM(LQZ), SUM(lqrw), SUM(LQW), SUM(Lq), SUM(LQR) FROM (select pla.DSC_ACO, sum(case when res.cod_ordem_producao like 'LQX%' then 1 else 0 end) as lqx, sum(case when res.cod_ordem_producao like 'LQP%' then 1 else 0 end) as lqp, sum(case when res.cod_ordem_producao like 'LQT%' then 1 else 0 end) as LQT, sum(case when res.cod_ordem_producao like 'LQRT%' then 1 else 0 end) as lqrt, sum(case when res.cod_ordem_producao like 'LQRZ%' then 1 else 0 end) as lqrz, sum(case when res.cod_ordem_producao like 'LQZ%' then 1 else 0 end) as LQZ, sum(case when res.cod_ordem_producao like 'LQRW%' then 1 else 0 end) as lqrw, sum(case when res.cod_ordem_producao like 'LQW%' then 1 else 0 end) as LQW, sum(case when res.cod_ordem_producao like 'LQ%' then 1 else 0 end) as Lq, sum(case when res.cod_ordem_producao like 'LQR%' then 1 else 0 end) as LQR from QT_QTS.RES_TUBO_REVENIMENTO2 res, QT_QTS.PLA_ORDEM_PRODUCAO pla where res.COD_ORDEM_PRODUCAO = pla.COD_ORDEM_PRODUCAO and res.DTH_CRIACAO_REG >= :dthini and res.DTH_CRIACAO_REG <=:dthfim group by pla.DSC_ACO)
Vous pouvez utiliser une simple requête comme celle-ci pour obtenir le résultat pour lqr% code> prédicat que vous demandez dans votre question
select sum(lqx), sum(lqp), sum(lqt), sum(lqrt), sum(lqrz), sum(lqz), sum(lqrw), sum(lqw), sum(lq) , sum(lqr) from (select pla.DSC_ACO, sum(case when res.cod_ordem_producao like 'LQX%' then 1 else 0 end) as lqx, sum(case when res.cod_ordem_producao like 'LQP%' then 1 else 0 end) as lqp, sum(case when res.cod_ordem_producao like 'LQT%' then 1 else 0 end) as LQT, sum(case when res.cod_ordem_producao like 'LQRT%' then 1 else 0 end) as lqrt, sum(case when res.cod_ordem_producao like 'LQRZ%' then 1 else 0 end) as lqrz, sum(case when res.cod_ordem_producao like 'LQZ%' then 1 else 0 end) as LQZ, sum(case when res.cod_ordem_producao like 'LQRW%' then 1 else 0 end) as lqrw, sum(case when res.cod_ordem_producao like 'LQW%' then 1 else 0 end) as LQW, sum(case when res.cod_ordem_producao like 'LQ%' then 1 else 0 end) as Lq, sum(case when res.cod_ordem_producao like 'LQR%' then 1 else 0 end) as LQR from QT_QTS.RES_TUBO_REVENIMENTO2 res, QT_QTS.PLA_ORDEM_PRODUCAO pla where res.COD_ORDEM_PRODUCAO = pla.COD_ORDEM_PRODUCAO and res.DTH_CRIACAO_REG >= :dthini and res.DTH_CRIACAO_REG <=:dthfim group by pla.DSC_ACO) as values
Utilisez une expression de table commune pour organiser les données souhaitées, alors sélectionnez-en simplement avec une simple sommation. Le CTE dans la clause avec la clause vous permettra de choisir à partir de celui-ci comme si c'était une table normale.
WITH temp_table AS ( select pla.DSC_ACO, case when res.cod_ordem_producao like 'LQX%' then 1 else 0 end as LQX, case when res.cod_ordem_producao like 'LQP%' then 1 else 0 end as LQP, case when res.cod_ordem_producao like 'LQT%' then 1 else 0 end as LQT, case when res.cod_ordem_producao like 'LQRT%' then 1 else 0 end as LQRT, case when res.cod_ordem_producao like 'LQRZ%' then 1 else 0 end as LQRZ, case when res.cod_ordem_producao like 'LQZ%' then 1 else 0 end as LQZ, case when res.cod_ordem_producao like 'LQRW%' then 1 else 0 end as LQRW, case when res.cod_ordem_producao like 'LQW%' then 1 else 0 end as LQW, case when res.cod_ordem_producao like 'LQR%' then 1 else 0 end as LQR, case when res.cod_ordem_producao like 'LQ%' then 1 else 0 end as LQ from QT_QTS.RES_TUBO_REVENIMENTO2 res, QT_QTS.PLA_ORDEM_PRODUCAO pla where res.COD_ORDEM_PRODUCAO = pla.COD_ORDEM_PRODUCAO and res.DTH_CRIACAO_REG >= :dthini and res.DTH_CRIACAO_REG <= :dthfim) SELECT SUM(LQ) AS LQ_SUM FROM temp_table
Merci pour l'aide!
fournir votre sortie attendue au format de tableau
Vous seriez double comptage
LQ code> - cela semblerait déjà avoir les informations que vous voulez
Conseil d'aujourd'hui: utilisez toujours la syntaxe code> joindre code> code>. Plus facile à écrire (sans erreur), plus facile à lire et à entretenir, et plus facile à convertir en jointure extérieure si nécessaire!
Merci pour le conseil!