Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Добрый день. Опять же,только начинаю писать запросы, опыта мало. Написал такой запрос.
Исходные данные

Габариты упаковок товара RC_ItemPackType
товар тип упаковки вес объем
ipt_ID ipt_ItemID ipt_PackType ipt_Weight ipt_Volume
3001 1001 ШТ 0,006 0,00000425
3002 1001 КОР 1,5 0,00106



Справочник товаров RC_Items
код наименование производ-ль
itm_ID itm_Code itm_Discription itm_Producer
1001 124548 Карандаш чернографитный Красин
1002 130087 Фломастеры "радуга" Carioca

Справочник ячеек RC_Locations

код участок высота длина ширина
loc_ID loc_Code loc_Build loc_Height loc_Length loc_Width
2001 A-03-01-01 4001 1,5 1,20 0,8
2002 A-05-07-01 4001 1 1,20 0,8


Товарный запас RC_Stock
id ячейки id товара id упаковки количество своб.кол-во
stk_ID stk_LocID stk_ItemID stk_ItemPackTypeID stk_Quantity stk_QuantityFree
5001 2004 1004 3006 250 250
5002 2004 1005 3007 1000 900


Нужно,написать запрос,выводящий эти данные

Ячейка Код товара Наименование Тип упаковки кол-во своб кол-во
A-03-01-01 124548 Карандаш чернографитный КОР 10 10
A-05-07-01 195236 Транспортир классный КОР 25 25

Вот что написал. Скажите, есть ли ошибки?
Select RL.loc_code, RI.itm_code,RI. itm_descriprion,RIP. ipt_pactype, RC.stk_quantity, RC. stk_quatityfree
from rc_items as RI, RC_Locations as RL, RC_ItemPactype as RIP,RC_Stock as RC
join RC_items on RC_Stock on RI.items_id=RC.stk_item_id
join RC_ItemPackType ON RI.itm_ID=RIP.ipt_ItemID AND RIP.ipt_ID=RC.stk_ItemPackTypeID
join RC_locations on RL.loc_id=RC.stk_locID
14 июл 15, 08:51    [17888497]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Да что такое..все расставляю,как надо, чтобы было понятно и опять все в куче..
14 июл 15, 08:54    [17888504]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Добрый Э - Эх
Guest
Максим Александровитч,

всё смешалось - кони, люди...

сначала пишешь старообрядный запятушечный кросс джойн, после - ансишними JOIN-ами пытаешься собрать всё воедино...
запрос-то хоть пробывал скормить серверу на выполнени? или интерес чисто академический и дальше бумажки дело не идет?
14 июл 15, 08:56    [17888512]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Добрый Э - Эх
Guest
Максим Александровитч
Да что такое..все расставляю,как надо, чтобы было понятно и опять все в куче..
научись пользоваться спец-тегами форума...
14 июл 15, 08:57    [17888516]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
для проверки синтаксиса запроса в студии служит кнопка PARSE( c птичкой)
14 июл 15, 09:02    [17888522]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Максим Александровитч
Вот что написал. Скажите, есть ли ошибки?

запустите и посмотрите на результат .....ведь сие не сложно вовсе
14 июл 15, 09:12    [17888560]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Добрый Э - Эх
Максим Александровитч,

всё смешалось - кони, люди...

сначала пишешь старообрядный запятушечный кросс джойн, после - ансишними JOIN-ами пытаешься собрать всё воедино...
запрос-то хоть пробывал скормить серверу на выполнени? или интерес чисто академический и дальше бумажки дело не идет?

Пока просто тренируюсь,т.к. базы нет под это дело. Но и академическим интерес тоже назвать нельзя. Я же говорил, что писал всю инфу четко, разбив. Форум смешал всю кучу. А можно объяснить зачем мне использовать left или right join в этой ситуации?
14 июл 15, 09:13    [17888564]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
LexusR
для проверки синтаксиса запроса в студии служит кнопка PARSE( c птичкой)

не можу,т.к. запрос не уйдет дальше моего блокнота и этого форума..
14 июл 15, 09:15    [17888573]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Maxx
Максим Александровитч
Вот что написал. Скажите, есть ли ошибки?

запустите и посмотрите на результат .....ведь сие не сложно вовсе

Да,Вы правы,но нет даже тестовой базы, поэтому проверить не могу..Просто, есть ли,на вскидку, какие-ть недочеты..не нарушена ли структура запроса, получу ли я необходимый результат, используя join
14 июл 15, 09:17    [17888582]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Максим Александровитч
А можно объяснить зачем мне использовать left или right join в этой ситуации?

вам все равно прийдеться прочитать про разницу inner/left/right/cross/full join'ов
14 июл 15, 09:17    [17888585]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Максим Александровитч
Добрый Э - Эх
Максим Александровитч,

всё смешалось - кони, люди...

сначала пишешь старообрядный запятушечный кросс джойн, после - ансишними JOIN-ами пытаешься собрать всё воедино...
запрос-то хоть пробывал скормить серверу на выполнени? или интерес чисто академический и дальше бумажки дело не идет?

Пока просто тренируюсь,т.к. базы нет под это дело. Но и академическим интерес тоже назвать нельзя. Я же говорил, что писал всю инфу четко, разбив. Форум смешал всю кучу. А можно объяснить зачем мне использовать left или right join в этой ситуации?


Или Вы имеете ввиду использовать inner join?
14 июл 15, 09:18    [17888593]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Максим Александровитч
Да,Вы правы,но нет даже тестовой базы, поэтому проверить не могу..Просто, есть ли,на вскидку, какие-ть недочеты..не нарушена ли структура запроса, получу ли я необходимый результат, используя join

у вас отношение между таблицами какие ? Да и писать скл в блокнотике......
14 июл 15, 09:19    [17888595]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Maxx
Максим Александровитч
А можно объяснить зачем мне использовать left или right join в этой ситуации?

вам все равно прийдеться прочитать про разницу inner/left/right/cross/full join'ов

Я читал,разумеется..просто мне интересно зачем в этой ситуации использовать еще что-то кроме inner join..
14 июл 15, 09:20    [17888598]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Maxx
Максим Александровитч
Да,Вы правы,но нет даже тестовой базы, поэтому проверить не могу..Просто, есть ли,на вскидку, какие-ть недочеты..не нарушена ли структура запроса, получу ли я необходимый результат, используя join

у вас отношение между таблицами какие ? Да и писать скл в блокнотике......


Отношения следующие
RC_Items.itm_ID---->RC_ItemPacktype_ipt.ItemID
RC_ItemPacktype.ipt_itmID---->RC_Stock.stk_itemID
RC_Stock.stk_itemPacktypeID

RC_Locatuions.loc_id---->RC_Stock.stk_LocID

RC_Items.itm_id---->RC_ItemPacktype.ipt_itmID
14 июл 15, 09:24    [17888611]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Максим Александровитч
Maxx
пропущено...

у вас отношение между таблицами какие ? Да и писать скл в блокнотике......


Отношения следующие
RC_Items.itm_ID---->RC_ItemPacktype_ipt.ItemID
RC_ItemPacktype.ipt_itmID---->RC_Stock.stk_itemID
RC_Stock.stk_itemPacktypeID



RC_Locations.loc_id---->RC_Stock.stk_LocID

RC_Items.itm_id---->RC_ItemPacktype.ipt_itmID


Подправил
14 июл 15, 09:26    [17888623]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Здесь - http://sqlfiddle.com/ - вы можете создавать таблицы и проверять свой синтаксис сколько угодно
14 июл 15, 09:29    [17888637]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Glory
Здесь - http://sqlfiddle.com/ - вы можете создавать таблицы и проверять свой синтаксис сколько угодно


Ух ты. Спасибо, попробую
14 июл 15, 09:33    [17888655]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Добрый Э - Эх
Guest
Максим Александровитч
Я же говорил, что писал всю инфу четко, разбив. Форум смешал всю кучу.
Во-первых, я ответил раньше, чем ты говорил. Во-вторых, про "смешалось в кучу" речь шла за синтаксис запроса (сначала пишешь старообрядный запятушечный кросс джойн, после - ансишними JOIN-ами пытаешься собрать всё воедино...), а не за оформление топика...
14 июл 15, 09:40    [17888680]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх,

конкретно вот это удивило:

Select RL.loc_code, RI.itm_code,RI. itm_descriprion,RIP. ipt_pactype, RC.stk_quantity, RC. stk_quatityfree
from rc_items as RI, RC_Locations as RL, RC_ItemPactype as RIP,RC_Stock as RC
join RC_items on RC_Stock on RI.items_id=RC.stk_item_id
join RC_ItemPackType ON RI.itm_ID=RIP.ipt_ItemID AND RIP.ipt_ID=RC.stk_ItemPackTypeID
join RC_locations on RL.loc_id=RC.stk_locID

Судя по всему, у тебя нет представления даже о базовых понятиях SQL. С такими знаниями запросы писать рановато. Для начала теорию нужно почитать.
14 июл 15, 09:43    [17888699]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Добрый Э - Эх
Добрый Э - Эх,

конкретно вот это удивило:

Select RL.loc_code, RI.itm_code,RI. itm_descriprion,RIP. ipt_pactype, RC.stk_quantity, RC. stk_quatityfree
from rc_items as RI, RC_Locations as RL, RC_ItemPactype as RIP,RC_Stock as RC
join RC_items on RC_Stock on RI.items_id=RC.stk_item_id
join RC_ItemPackType ON RI.itm_ID=RIP.ipt_ItemID AND RIP.ipt_ID=RC.stk_ItemPackTypeID
join RC_locations on RL.loc_id=RC.stk_locID

Судя по всему, у тебя нет представления даже о базовых понятиях SQL. С такими знаниями запросы писать рановато. Для начала теорию нужно почитать.


Да,спасибо,тут косяк будет. Плохо,что нет базы..Исправлю..
14 июл 15, 09:45    [17888708]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Так корректнее?


Select RL.loc_code, RI.itm_code,RI. itm_descriprion,RIP. ipt_pactype, RC.stk_quantity, RC. stk_quatityfree
from rc_items as RI
inner join RC_Stock as RC on RI.items_id=RC.stk_item_id
inner join RC_ItemPackType as RIP ON RI.itm_ID=RIP.ipt_ItemID AND RIP.ipt_ID=RC.stk_ItemPackTypeID
inner join RC_locations as RL on RL.loc_id=RC.stk_locID
14 июл 15, 09:49    [17888728]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Добрый Э - Эх
Максим Александровитч
Я же говорил, что писал всю инфу четко, разбив. Форум смешал всю кучу.
Во-первых, я ответил раньше, чем ты говорил. Во-вторых, про "смешалось в кучу" речь шла за синтаксис запроса (сначала пишешь старообрядный запятушечный кросс джойн, после - ансишними JOIN-ами пытаешься собрать всё воедино...), а не за оформление топика...

Понял, подправил там..
14 июл 15, 09:51    [17888736]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
С этим вопросом разобрался..
14 июл 15, 11:24    [17889189]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 521
Есть другой вопрос,как посчитать процент объем товара в ячейке..
Ячейка Объем ячейки Объем товара Процент заполненности
A-03-01-01 1,44 0,0106 0,74


есть предположение, что SUM(RC_ItemPackType .ipt_Volume * RC_Stock .stk_Quantity)

Верно ли?
14 июл 15, 11:33    [17889235]     Ответить | Цитировать Сообщить модератору
 Re: Просьба проверить запрос,использующий join  [new]
Glory
Member

Откуда:
Сообщений: 104751
Максим Александровитч
Верно ли?

Уважаемый Максим Александровитч
Форум - это не парсер, не компилятор, на проверяльщик синтаксиса, не онлайн транслятор ваших успехов/неудач.
Синтаксис, пожалуйста, изучайте по учебникам или на курсах
Работу ваших запросов, пожалуйста, проверяйте на тестовых серверах.
А в форум обращайтесь с поиском решения проблем.
14 июл 15, 11:37    [17889260]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить