0
votes

SQL - Comment obtenir la somme de décodage

Voici ma requête SQL jusqu'à présent xxx

et ma sortie actuelle est la suivante:

 Entrez la description de l'image ici < P> ** J'ai ajouté le sup_id à ma déclaration de sélection, alors je sais que c'est un fournisseur différent. Donc, ce que j'essaie de faire est d'obtenir le total de ces pendements et complété

la sortie doit être comme ceci:

 Entrez la description de l'image ici < / p>


3 commentaires

Qu'est-ce qui ne fonctionne pas? Est somme (décodage (O.Status, 'p', 1, 0)) etc non ce dont vous avez besoin?


Comment les ajoutez-vous avec le statut terminé?


Vous ajoutez des valeurs à l'aide de l'opérateur + . Qu'est-ce qui ne fonctionne pas?


3 Réponses :


0
votes

Vous pouvez définir une requête parent avec groupe par , à l'aide de votre requête existante: xxx


1 commentaires

@kPatch pouvez-vous s'il vous plaît réessayer?



0
votes

Et ça? Code dont vous avez besoin est de la ligne n ° 12 en avant.

SQL> with test (emp_id, status, sup_id) as
  2    (select 102, 'P', 19 from dual union all
  3     select 102, 'P', 76 from dual union all
  4     select 103, 'C', 19 from dual union all
  5     select 104, 'C', 75 from dual union all
  6     select 107, 'C', 74 from dual union all
  7     select 107, 'P', 73 from dual union all
  8     select 110, 'C', 19 from dual union all
  9     select 110, 'P', 15 from dual union all
 10     select 110, 'P', 17 from dual
 11    )
 12  select emp_id,
 13    sum(case when status = 'P' then 1 else 0 end) pending,
 14    sum(case when status = 'C' then 1 else 0 end) completed,
 15    count(*) all_orders
 16  From test
 17  group by emp_id
 18  order by emp_id;

    EMP_ID    PENDING  COMPLETED ALL_ORDERS
---------- ---------- ---------- ----------
       102          2          0          2
       103          0          1          1
       104          0          1          1
       107          1          1          2
       110          2          1          3

SQL>


0 commentaires

1
votes

Essayez ci-dessous Query

SELECT  sum(DECODE(o.status, 'P', 1, 0)) PENDING,sum(DECODE(o.status, 'C', 1, 0)) COMPLETED,
          o.sup_id
    FROM L4_Orders o, L4_suppliers s, L4_sup_pro sp, L4_details d, L4_products p, L4_inventories i
    WHERE o.sup_id = s.id AND
          s.id = sp.sup_id AND
          o.id = d.ord_Id AND
          d.pro_id = p.our_id AND
          p.our_id  = sp.pro_id AND
          p.our_id = i.pro_id AND
          province = 'BC'
    group by o.emp_id
    ORDER BY o.emp_id;


0 commentaires