Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
здравствуйте, очень нужна помощь с запросом. Пишу программу на С++, которая работает с скл сервер. Суть вопроса. Есть н-ное количество таблиц:
UPAC (KTEX, KU, Date_Upak, KG, Date_otg, ID_user)
SPRTEXK (KTEX, NU)
SPRKOD (MOD, ART, SKOD, SORT, CW, KP)
NSIPP (структуру не помню, сейчас не на работе, оттуда нужны только KG и NG)
NSICW (CW, NCW)
SPRMOD (всю структуру тож не помню, поля, что нужны - M, NP)

Суть вопроса в чем - пользователь вводит техкод (KTEX), состоящий из 14 символов, сравниваем с таблицей UPAC, берем оттуда участок (KU), дату упаковки (Date_upak); затем из таблицы UPAC берем код грузополучателя (KG) и находим название его же в таблице NSIPP;
выделяем из введенного пользователем техкода 5 предпоследних знаков и сравниваем с SPRKOD.SKOD и берем оттуда MOD,ART,SORT,CW,KP; по выбранному KP из SPRKOD ищем в NSIPP NG; по выведенному коду цвета (CW) вывести его название из таблицы NSICW (NCW) Собственно на экран нужно вывести:
1)Модель (SPRKOD.MOD)
2)Наименование модели (SPRMOD.NP)
3)Артикул (SPRKOD.ART)
4)Сорт (SPRKOD.SORT)
5)Наименование цвета (NSICW.NCW)
6)Участок упаковки (UPAC.KU)
7)Дата упаковки (UPAC.Date_upak)
8)Количество упаковки (это еще нужно и посчитать - это количество найденных по введенному пользователем техкоду из таблицы UPAC)
9) Наименование грузополучателя (NSIPP.NG)
10)Дата отгрузки (UPAK.Date_otg)

Собственно у меня почти получилось, проблема была с подсчетом - не считал, стал исправлять и запутался вконец, вообще перестало все работать. Вот мой запрос:

select s.Модель,s.Название,s.Артикул,s.Сорт,nsicw.ncw as Цвет, 
s.Участок,s.Дата_Упаковки,s.Грузополучатель  from 
(Select SPRKOD.MOD as Модель,SPRMOD.NP as Название, 
 SPRKOD.ART as Артикул,SPRKOD.SORT as Сорт, SPRKOD.CW,
UPAC.KU as Участок,[UPAC].[DATE_UPAK] as Дата_Упаковки, 
NSIPP.NG as Грузополучатель, UPAC.DATE_OTG as Дата_отгрузки");
from SPRKOD,SPRMOD,UPAC,NSIPP
where SPRKOD.SKOD=substring(введенное_пользователем_значение,8,5) 
 and SPRMOD.M=SPRKOD.MOD 
 and NSIPP.KG=UPAC.KG and Upac.KTEX = введенное_пользователем_значение )as s 
 Left outer join NSICW on NSICW.CW = S.CW
в строке 8 стал исправлять свои ошибки - тут и пошел косяк,

Суммы в этом запросе пока нет, она была и не работала
Подскажите пожалуйста, где я чего напутал ((

Сообщение было отредактировано: 27 окт 11, 19:04
27 окт 11, 18:58    [11511897]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Glory
Member

Откуда:
Сообщений: 104751
Что за ; в середине запроса взялась ?
И что за странный вложенный запрос в скобках - select без from ?
27 окт 11, 19:06    [11511929]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
Glory, я просто удалял код от С++, чтобы остался только сам запрос, остался хвост, сейчас удалю
28 окт 11, 10:38    [11514037]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
да-да, "); - это от С++ осталось
28 окт 11, 10:39    [11514044]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Glory
Member

Откуда:
Сообщений: 104751
Dante de Lio
да-да, "); - это от С++ осталось

И как же тогда выглядит запрос ?
А сообщение об ошибке ?
28 окт 11, 10:40    [11514056]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
select s.Модель,s.Название,s.Артикул,s.Сорт,nsicw.ncw as Цвет, 
s.Участок,s.Дата_Упаковки,s.Грузополучатель  from 
(Select SPRKOD.MOD as Модель,SPRMOD.NP as Название, 
 SPRKOD.ART as Артикул,SPRKOD.SORT as Сорт, SPRKOD.CW,
UPAC.KU as Участок,[UPAC].[DATE_UPAK] as Дата_Упаковки, 
NSIPP.NG as Грузополучатель, UPAC.DATE_OTG as Дата_отгрузки
from SPRKOD,SPRMOD,UPAC,NSIPP
where SPRKOD.SKOD=substring(введенное_пользователем_значение,8,5) 
 and SPRMOD.M=SPRKOD.MOD 
 and NSIPP.KG=UPAC.KG and Upac.KTEX = введенное_пользователем_значение )as s 
 Left outer join NSICW on NSICW.CW = S.CW

вот исправил запрос, ошибки не выдает - выдает неверные результаты

Сообщение было отредактировано: 28 окт 11, 12:32
28 окт 11, 12:31    [11514973]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Dante de Lio
вот исправил запрос, ошибки не выдает - выдает неверные результаты
Типа, теперь надо угадать, какие же результаты у вас выдает запрос, и почему они таки не верные?
28 окт 11, 12:32    [11514989]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
вот окно ввода

К сообщению приложен файл. Размер - 12Kb
28 окт 11, 12:37    [11515049]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
вот результат. Результат является неверным тем, что выдает несоответствующие данные, модель должна быть "37510" и далее по соответствию

К сообщению приложен файл. Размер - 42Kb
28 окт 11, 12:39    [11515069]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ваши левые скриншоты никому не нужны.

Пункт 6.
28 окт 11, 12:43    [11515112]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
я показал результаты вторым скрином, в чем остался вопрос?
28 окт 11, 12:53    [11515211]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Dante de Lio
я показал результаты вторым скрином, в чем остался вопрос?
Читайте рекомендации, до тех пор, пока не дойдет, что еще надо.
28 окт 11, 12:54    [11515228]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Glory
Member

Откуда:
Сообщений: 104751
Dante de Lio
вот результат. Результат является неверным тем, что выдает несоответствующие данные, модель должна быть "37510" и далее по соответствию

И почему это "модель должна быть" ? какое условие в вашем запросе заставляет "модель быть" ?
28 окт 11, 13:10    [11515366]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
Dante de Lio
вот исправил запрос, ошибки не выдает - выдает неверные результаты
Навскидку: у вас в подзапросе, во FROM, четыре таблицы, а условий связывания - только два...
28 окт 11, 14:11    [11515909]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом, запутался (  [new]
Dante de Lio
Member

Откуда:
Сообщений: 8
спасибо всем за участие, разобрался сам, дело не в связывании было.
29 окт 11, 09:21    [11520433]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить