Soucis avec une reqête sql (oracle) [Résolu] - SQL/NoSQL - Programmation
Marsh Posté le 04-03-2016 à 14:56:02
oki j'ai récrit ma requête de cette manière, ça à l'air plus propre
select
case when gg.c_good_status=3 then 'Suspendu'
when gg.c_good_status=2 then 'Actif'
when gg.c_good_status=5 then 'Historié'
else 'Inderterminé' end as Status,
gg.goo_major_reference,
gg.goo_secondary_reference,
gg.dic_good_family_id,
gg.dic_good_line_id,
case when sp.spo_stock_quantity is not null then sp.spo_stock_quantity
else 0 end as QTY
from gco_good gg
left outer join stm_stock_position sp on gg.gco_good_id=sp.gco_good_id
order by gg.c_good_status,gg.dic_good_line_id,gg.dic_good_family_id,gg.goo_major_reference
Marsh Posté le 04-03-2016 à 14:02:09
Bonjour, J'ai un soucis avec une requête SQL.
select
case when gg.c_good_status=3 then 'Suspendu'
when gg.c_good_status=2 then 'Actif'
when gg.c_good_status=5 then 'Historié'
else 'Inderterminé' end as Status,
gg.goo_major_reference,
gg.goo_secondary_reference,
gg.dic_good_family_id,
gg.dic_good_line_id,
case when (select sp.spo_stock_quantity from stm_stock_position sp where sp.gco_good_id=gg.gco_good_id) is not null then
(select sp.spo_stock_quantity from stm_stock_position sp where sp.gco_good_id=gg.gco_good_id)
else 0 end as Qty
from gco_good gg
Cette partie ne me plait pas du tout, je suis sûr que l'on peut l'écrire de manière plus propre sans faire les deux requêtes identiques (select).
De plus, elle fonctionne sous certain editeur sql mais pas sous d'autre ce qui me fait dire que clairement. il y a un soucis.
Erreur obtenu sur certain éditeur :
ORA-01427: sous-interrogation ramenant un enregistrement de plus d'une ligne
01427. 00000 - "single-row subquery returns more than one row"
*Cause:
*Action:
Ma question comment vous feriez cette partie en rouge ? en passant par une variable pour stockez le résultat ou d'une autre manière ?
Message édité par bossamiral2 le 04-03-2016 à 14:57:08