dポイントプレゼントキャンペーン実施中!

どなたか次の文法でまちがっている点をおしえてください


SELECT NY.nko_yotei_date,
KM.shoh_nm,
KM.btr_center_cd,
KM.souko_cd,
KM.juchuu_kikakukai,
KM.tokki_kbn,
KM.shoh_idx,
KM.haitatsu_kikakukai,
SUM(NY.yotei_ps_sou_su)

FROM M_SC_KIKAKU_SHOUHIN KM LEFT OUTER JOIN T_SC_NKO_YOTEI NY
ON KM.BTR_CENTER_CD = NY.BTR_CENTER_CD
AND KM.SOUKO_CD = NY.SOUKO_CD
AND KM.juchuu_kikakukai = NY.juchuu_kikakukai
AND KM.tokki_kbn = NY.tokki_kbn
AND KM.shoh_idx = NY.shoh_idx
AND KM.haitatsu_kikakukai = NY.haitatsu_kikakukai
AND KM.shoh_nm = NY.shoh_nm

WHERE KM.SHOH_CLS = '1'
AND KM.HAITATSU_KIKAKUKAI = '11124'
AND NY.nko_yotei_date = '20111215'
AND KM.HI_SHUH_FLG = '0'

GROUP BY btr_center_cd,
souko_cd,
juchuu_kikakukai,
tokki_kbn,
shoh_idx,
haitatsu_kikakukai,
nko_yotei_date,
shoh_nm

ORDER BY btr_center_cd,
souko_cd,
juchuu_kikakukai,
tokki_kbn,
shoh_idx,
haitatsu_kikakukai,
nko_yotei_date,
shoh_nm DESC

A 回答 (2件)

間違っているということをどうやって気付かれたのでしょうか?


エラーが出たからでしょうか?
であれば、エラーメッセージくらい書いても良いと思います。

あと、回答する側が実機で試してみようにも、
表定義がなければそれをいちいち起こさなければなりません。
これだけ長いSQLを一目しただけでココが悪いと言える人はそれほどいないと思います。
(実機で問題を再現できる程度の情報は出すべき。
サポートでさえも再現できない問題は取り合ってくれませんし)

さて、肝心の回答ですが、group by句の所を確認してください。

SELECT NY.nko_yotei_date,
KM.shoh_nm,
KM.btr_center_cd,
KM.souko_cd,
KM.juchuu_kikakukai,
KM.tokki_kbn,
KM.shoh_idx,
KM.haitatsu_kikakukai,
SUM(NY.yotei_ps_sou_su)
FROM M_SC_KIKAKU_SHOUHIN KM LEFT OUTER JOIN T_SC_NKO_YOTEI NY
ON KM.BTR_CENTER_CD = NY.BTR_CENTER_CD
AND KM.SOUKO_CD = NY.SOUKO_CD
AND KM.juchuu_kikakukai = NY.juchuu_kikakukai
AND KM.tokki_kbn = NY.tokki_kbn
AND KM.shoh_idx = NY.shoh_idx
AND KM.haitatsu_kikakukai = NY.haitatsu_kikakukai
AND KM.shoh_nm = NY.shoh_nm
WHERE KM.SHOH_CLS = '1'
AND KM.HAITATSU_KIKAKUKAI = '11124'
AND NY.nko_yotei_date = '20111215'
AND KM.HI_SHUH_FLG = '0'
GROUP BY km.btr_center_cd,
km.souko_cd,
km.juchuu_kikakukai,
km.tokki_kbn,
km.shoh_idx,
km.haitatsu_kikakukai,
nko_yotei_date,
km.shoh_nm
ORDER BY btr_center_cd,
souko_cd,
juchuu_kikakukai,
tokki_kbn,
shoh_idx,
haitatsu_kikakukai,
nko_yotei_date,
shoh_nm DESC;

drop table M_SC_KIKAKU_SHOUHIN;
create table M_SC_KIKAKU_SHOUHIN (
z varchar2(10),
btr_center_cd varchar2(10),
souko_cd varchar2(10),
juchuu_kikakukai varchar2(10),
tokki_kbn varchar2(10),
shoh_idx varchar2(10),
haitatsu_kikakukai varchar2(10),
SHOH_CLS varchar2(10),
HI_SHUH_FLG varchar2(10));


drop table T_SC_NKO_YOTEI;
create table T_SC_NKO_YOTEI (
yotei_ps_sou_su varchar2(10),
SOUKO_CD varchar2(10),
juchuu_kikakukai varchar2(10),
tokki_kbn varchar2(10),
shoh_idx varchar2(10),
haitatsu_kikakukai varchar2(10),
shoh_nm varchar2(10),
nko_yotei_date varchar2(10),
BTR_CENTER_CD varchar2(10));
    • good
    • 0

GROUP BY句 および ORDER BY句 においても


SELECTにおける列指定と同じ
NY. ないし KM. による表名指定が必要だと思います。

例えば,KM.shoh_nm = NY.shoh_nm という結合式は
2つの列それぞれが存在してその値を結びつけている記述です。
ただ1つの shoh_nm という列だけが存在するように一体化する記述ではありませんから。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!