sqlについての質問
お世話になります。
下記コードにて、抽出されたデータに不備があります。
「q2.新新品番(+) = A.品番」としていますが、
完全一致しない品番が見受けられ、trimを使ったら
良いのではと思うのですが、どこにtrimを入れたら
良いのか、又は考え方自体違うのか
現在テンパっている所でございます。
どなたか良いアドバイスを頂けたらと思い、
ご質問させて頂きました。
何卒、ご教示頂けます様、宜しくお願い致します。
記
select case
when substr(q2.新新品番,8,1)='_' then
substr(q2.新新品番,1,7)
else
q2.新新品番
end as 品番
,SUM(q2.新新合格数) AS 生産合格数
,A.伝票ID,A.品番,A.新入庫数量 as 区画入庫数,A.区画番号
from
(
select case
when substr(q1.新品番,6,1)='_' then
substr(q1.新品番,1,5)
else
q1.新品番
end as 新新品番
,SUM(q1.新合格数) AS 新新合格数
from
(
SELECT 更新日時,
case
when substr(ハンドル,7,1)='_' then
substr(ハンドル,1,6)
else
ハンドル
end as 新品番
,SUM(合格本数) AS 新合格数
FROM D最終検査履歴
WHERE 更新日時 BETWEEN '2012-5-31' and '2012-6-01'
group by 更新日時, case
when substr(ハンドル,7,1)='_' then
substr(ハンドル,1,6)
else
ハンドル
end
)q1
group by case
when substr(q1.新品番,6,1)='_' then
substr(q1.新品番,1,5)
else
q1.新品番
end
)q2 ,
(select 伝票ID,品番,sum(入庫数量)as 新入庫数量,区画番号
from D屋外入庫
where 登録日時 between '2012-5-31' and '2012-6-01' and 伝票ID='SN'
group by 伝票ID, 品番, 区画番号
)A
where q2.新新品番(+) = A.品番
group by case
when substr(q2.新新品番,8,1)='_' then
substr(q2.新新品番,1,7)
else
q2.新新品番
end, A.伝票ID, A.品番, A.新入庫数量, A.区画番号