Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помогите чайнику)  [new]
zip4ik
Member

Откуда:
Сообщений: 4
Есть такое

SELECT b.ndoc,b.dat,

SUBSTR( DECODE(b.bank_id,null,NVL(sf.FIRM_FULL_NAME,sf.FIRM_NAME),NVL(sb.FIRM_FULL_NAME,sb.FIRM_NAME)),1,200) AS POST_NAME,
SUBSTR( DECODE(b.bank_id,null,NVL(sf.FIRM_FULL_NAME,sf.FIRM_NAME)||' ИНН ' || sf.INN || ' КПП ' || sf.KPP,NVL(sb.FIRM_FULL_NAME,sb.FIRM_NAME)||' ИНН ' || sb.INN || ' КПП ' || sb.KPP) ,1,200) AS POST_NAME_INN,
SUBSTR( DECODE(b.bank_id,null,sf.adr||' тел. ' ||sf.tel,sb.adr||' тел. ' ||sb.tel),1,200) AS POST_ADR,
NVL(spok.POK_FULL_NAME,spok.POK_NAME) AS POK_NAME,
SUBSTR(NVL(spok.POK_FULL_NAME,spok.POK_NAME)||' ИНН ' || spok.INN || ' КПП ' || spok.KPP,1,200) AS POK_NAME_INN,
SUBSTR(spok.adr||' тел. ' ||spok.tel,1,200) AS POK_ADR,
spok.DOG_N,
spok.DOG_DATE_BEG,
st.TOV_KOD,
st.OKDP,
st.KODZ,
st.TOV_NAME,
su.UNIT_NAME,
sss.size1,
sc.color_name,
t.KOL,
t.cena_prod,
t.kval_prod,
NVL({KURS},0) AS KURS,
(SELECT NGTD FROM KART_PRIH WHERE KART_ID=t.OKART_ID) as NGTD,
(SELECT STATE_NAME FROM S_STATE WHERE STATE_ID=(SELECT STATE_ID FROM KART_PRIH WHERE KART_ID=t.OKART_ID)) AS STATE_NAME
FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)


Есть таблица с баркодами S_SBARCODE (ID, TOV_ID, SIZE_ID, COLOR_ID, BARCODE), баркод для товара определяется цветом и размером.
Как сделать так что запрос выводил баркод для каждого товара?
17 янв 11, 13:53    [10084619]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
zip4ik,

отформатирую за вас
SELECT b.ndoc,b.dat,

SUBSTR( DECODE(b.bank_id,null,NVL(sf.FIRM_FULL_NAME,sf.FIRM_NAME),NVL(sb.FIRM_FULL_NAME,sb.FIRM_NAME)),1,200) AS POST_NAME,
SUBSTR( DECODE(b.bank_id,null,NVL(sf.FIRM_FULL_NAME,sf.FIRM_NAME)||' ИНН ' || sf.INN || ' КПП ' || sf.KPP,NVL(sb.FIRM_FULL_NAME,sb.FIRM_NAME)||' ИНН ' || sb.INN || ' КПП ' || sb.KPP) ,1,200) AS POST_NAME_INN,
SUBSTR( DECODE(b.bank_id,null,sf.adr||' тел. ' ||sf.tel,sb.adr||' тел. ' ||sb.tel),1,200) AS POST_ADR,
NVL(spok.POK_FULL_NAME,spok.POK_NAME) AS POK_NAME,
SUBSTR(NVL(spok.POK_FULL_NAME,spok.POK_NAME)||' ИНН ' || spok.INN || ' КПП ' || spok.KPP,1,200) AS POK_NAME_INN,
SUBSTR(spok.adr||' тел. ' ||spok.tel,1,200) AS POK_ADR,
spok.DOG_N,
spok.DOG_DATE_BEG,
st.TOV_KOD,
st.OKDP,
st.KODZ,
st.TOV_NAME,
su.UNIT_NAME,
sss.size1,
sc.color_name, 
t.KOL, 
t.cena_prod,
t.kval_prod,
NVL({KURS},0) AS KURS,
(SELECT NGTD FROM KART_PRIH WHERE KART_ID=t.OKART_ID) as NGTD,
(SELECT STATE_NAME FROM S_STATE WHERE STATE_ID=(SELECT STATE_ID FROM KART_PRIH WHERE KART_ID=t.OKART_ID)) AS STATE_NAME
FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)


17 янв 11, 13:54    [10084630]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Чайник,

Посмотри как следует задавать вопросы по sql чтобы тебя поняли
17 янв 11, 13:56    [10084657]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
предположительно так
Guest
select
.....

S_BARCODE.BARCODE

FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok,
S_SBARCODE
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)
and
t.SIZE_ID=S_SBARCODE.size_id(+)
and
t.COLOR_ID=S_SBARCODE.COLOR_id(+)
17 янв 11, 14:11    [10084781]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
а возможно, что и так
Guest
select
.....

S_SBARCODE.BARCODE

FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok,
S_SBARCODE
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)
and
t.TOV_ID=S_SBARCODE.tov_id(+)

/* автору вопроса - выяснить точно - как связаны таблицы "товара" и "баркодов". Или воспользоваться ответом Amkad-а */
17 янв 11, 14:28    [10084941]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
zip4ik
Member

Откуда:
Сообщений: 4
а возможно, что и так,

Баркод определяется 3 параметрами, tov_id, size_id, color_id
17 янв 11, 14:39    [10085025]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
zip4ik
Member

Откуда:
Сообщений: 4
а возможно, что и так
select
.....

S_SBARCODE.BARCODE

FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok,
S_SBARCODE
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)
and
t.TOV_ID=S_SBARCODE.tov_id(+)

/* автору вопроса - выяснить точно - как связаны таблицы "товара" и "баркодов". Или воспользоваться ответом Amkad-а */



спасиб, вес получилось)
17 янв 11, 14:47    [10085094]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
тогда должно быть так
Guest
zip4ik,

select
.....

S_SBARCODE.BARCODE

FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok,
S_SBARCODE
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)
and
t.SIZE_ID=S_SBARCODE.size_id(+)
and
t.COLOR_ID=S_SBARCODE.COLOR_id(+)
and
t.tov_id=S_SBARCODE.tov_id(+)


PS: и что это за выражение в оригинальном запросе: NVL({KURS},0) AS KURS,
17 янв 11, 14:50    [10085124]     Ответить | Цитировать Сообщить модератору
 Re: Помогите чайнику)  [new]
zip4ik
Member

Откуда:
Сообщений: 4
тогда должно быть так
zip4ik,

select
.....

S_SBARCODE.BARCODE

FROM
KART_RASH t,
BOOK b,
S_STOV st,
S_SSIZE sss,
S_SCOLOR sc,
S_SUNIT su,
S_SFIRM sf,
S_SFIRM_BANK sb,
S_SPOK_DOG spok,
S_SBARCODE
WHERE
t.book_id=:BOOK_ID AND
t.book_id=b.book_id(+) AND
t.TOV_ID=st.TOV_ID(+) AND
t.SIZE_ID=sss.size_id(+) AND
t.COLOR_ID=sc.COLOR_id(+) AND
st.UNIT_ID=su.UNIT_ID(+) AND
t.pok_DOG_id=spok.DOG_id(+) AND
b.firm_id=sf.firm_id(+) AND
b.bank_id=sb.bank_id(+)
and
t.SIZE_ID=S_SBARCODE.size_id(+)
and
t.COLOR_ID=S_SBARCODE.COLOR_id(+)
and
t.tov_id=S_SBARCODE.tov_id(+)


PS: и что это за выражение в оригинальном запросе: NVL({KURS},0) AS KURS,


t.SIZE_ID=S_SBARCODE.size_id(+)
and
t.COLOR_ID=S_SBARCODE.COLOR_id(+)
and
t.tov_id=S_SBARCODE.id(+)

так точнее.

NVL({KURS},0) AS KURS, на самом деле там нет этих скобок, не знаю почему они тут вставились.
18 янв 11, 14:33    [10090990]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить