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

Откуда:
Сообщений: 12
select \n" +
" a.Quantity, \n" +
" a.PriceFact, \n" +
" a.Amount, \n" +
" a.Id, \n" +
" a.IdGoods, \n" +
" a.idDoc, \n" +
" IFNULL(b.Value,0) as [bonus1],\n" +
" b.idAttribute, \n" +
" c.PDAEditPos ,\n" +
" c.Id \n" +
" FROM drPreOrder a\n" +
" LEFT outer join refAttributesValues b \n" +
" ON a.Id=b.idElement \n" +
" LEFT outer join refAttributes c \n" +
" ON c.Id=b.idAttribute \n" +
" where a.IdGoods ="+sss+" AND a.idDoc ="+ddd);
мне нужны только значения с c.PDAEditPos=1, но может не быть строк с Id в таблице refAttributesValues равным a.id. Не могу ничего придумать. Сильно не пинайте. Новичок :)
18 мар 15, 11:52    [17398563]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
мне нужны только значения с c.PDAEditPos=1

и что мешает дописать это условие в текст запроса ?
18 мар 15, 11:56    [17398608]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Glory
gun200
мне нужны только значения с c.PDAEditPos=1

и что мешает дописать это условие в текст запроса ?

когда в таблице нет элементов refAttributesValues a.Id=b.idElement и c.PDAEditPos=1 выводит ошибку. Если есть значения то все хорошо.
18 мар 15, 12:00    [17398633]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
выводит ошибку.

И вы прочитали текст этой ошибки ?
18 мар 15, 12:02    [17398650]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Наверное я не правильно описал проблему.

Мне всегда нужны цена и количество, а так же бонус, если он есть. Так вот если бонус есть то все работает, если бонуса нет то сумма пустое значение.

api.sql.exec("select \n" +
" a.Quantity, \n" +
" a.PriceFact, \n" +
" a.Amount, \n" +
" a.Id, \n" +
" a.IdGoods, \n" +
" a.idDoc, \n" +
" IFNULL(b.Value,0) as [bonus1],\n" +
" b.idAttribute, \n" +
" c.PDAEditPos ,\n" +
" c.Id \n" +
" FROM drPreOrder a\n" +
" LEFT outer join refAttributesValues b \n" +
" ON a.Id=b.idElement \n" +
" RIGHT outer join refAttributes c \n" +
" ON c.Id=b.idAttribute \n" +
" where a.IdGoods ="+sss+" AND a.idDoc ="+ddd);

api.sql.first();
kol=api.sql.value("Quantity");
bonus=api.sql.value("bonus1");
api.interactive.question("бонус "+bonus,"Ok");
api.interactive.question("Кол "+kol,"Ok");

if(bonus>kol)
{
api.interactive.question("Не верно указан бонус "+bonus+", он будет автоматически исправлен в 1с на " + kol+" !!!","Ok");
bonus=kol;

}
sum=(kol-bonus)*Math.round(api.sql.value("PriceFact"));
api.sql.finish();
api.sql.exec("Update drPreOrder set Amount ="+sum+" where IdGoods ="+sss+" AND idDoc ="+ddd);
api.interactive.question("нашли "+ sum,"Ok");
}
18 мар 15, 12:05    [17398687]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
если нет элементов refAttributesValues a.Id=b.idElement то и невозможно выполнить условие c.PDAEditPos=1

так что поменяйте LEFT outer join на INNER join и добавляйте условие в WHERE
... and c.PDAEditPos=1
18 мар 15, 12:06    [17398688]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
Мне всегда нужны цена и количество, а так же бонус, если он есть. Так вот если бонус есть то все работает, если бонуса нет то сумма пустое значение.

И что по-вашему должно быть вместо "сумма пустое значение", "если бонуса" ?
18 мар 15, 12:09    [17398706]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Glory
gun200
Мне всегда нужны цена и количество, а так же бонус, если он есть. Так вот если бонус есть то все работает, если бонуса нет то сумма пустое значение.

И что по-вашему должно быть вместо "сумма пустое значение", "если бонуса" ?

Хочу увидеть сумму без бонусов :).
18 мар 15, 12:11    [17398713]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
Glory
пропущено...

И что по-вашему должно быть вместо "сумма пустое значение", "если бонуса" ?

Хочу увидеть сумму без бонусов :).

Ну так проверяйте, какое значение имеет бонус, когда считаете свою сумму
18 мар 15, 12:12    [17398719]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Так он мне в количестве из запроса говорит "undefined", если нет бонуса. А проверить есть он или нет могу, только в запросе, вот и выходит замкнутый круг.
18 мар 15, 12:15    [17398735]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
Так он мне в количестве из запроса говорит "undefined"

Если "он" - это ваш клиентский код, то заставьте его "говорить" более вменяемо
18 мар 15, 12:17    [17398750]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Ещё раз хочу объяснить, что мне нужно.
У меня есть три таблицы drPreOrder с неё мне нужно количество, refAttributesValues с неё мне нужны бонусы, если они есть. refAttributes тут хранится является ли элемент бонусом или это другой атрибут PDAEditPos=1.
Если бонусы есть, то все хорошо, если их нет то проблема :(.
18 мар 15, 12:17    [17398753]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
У меня есть три таблицы drPreOrder с неё мне нужно количество, refAttributesValues с неё мне нужны бонусы, если они есть. refAttributes тут хранится является ли элемент бонусом или это другой атрибут PDAEditPos=1.
Если бонусы есть, то все хорошо, если их нет то проблема :(.

Причем тут Microsoft SQL Server ?
разве он вам что-то "говорит" про ваш бонус ?
18 мар 15, 12:19    [17398770]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
gun200
Так он мне в количестве из запроса говорит "undefined", если нет бонуса. А проверить есть он или нет могу, только в запросе, вот и выходит замкнутый круг.

Обожемой.

Ну так добавьте проверку на undefined! Если bonus может быть пустой - то сначала сделайте проверку, что он не пуст, потом уже сравнивайте его с другим числом.
18 мар 15, 12:30    [17398825]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Minamoto
gun200
Так он мне в количестве из запроса говорит "undefined", если нет бонуса. А проверить есть он или нет могу, только в запросе, вот и выходит замкнутый круг.

Обожемой.

Ну так добавьте проверку на undefined! Если bonus может быть пустой - то сначала сделайте проверку, что он не пуст, потом уже сравнивайте его с другим числом.


Помогите плиз не могу понять как это сделать.
18 мар 15, 12:35    [17398850]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
gun200
Помогите плиз не могу понять как это сделать.

Для начала найдите правильный форум.
18 мар 15, 12:36    [17398854]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
gun200
Member

Откуда:
Сообщений: 12
Glory
gun200
Помогите плиз не могу понять как это сделать.

Для начала найдите правильный форум.

Спасибо
18 мар 15, 12:40    [17398893]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить