|
Запрос по нескольким типам цен | ☑ | ||
---|---|---|---|---|
0
prozex
02.11.18
✎
20:37
|
Здравствуйте, уважаемые форумчане.
Прошу помочь советом. Нужно получить список элементов номенклатуры, у которых цена "Розничная" ниже цены "Закупочная". Хочется сделать это грамотно, одним запросом к базе. В базе несколько десятков тысяч товаров, и использовать запросы в цикле не очень хочется, ввиду того, что скорость работы алгоритма при условии доступа к файлу БД по сети в таком случае будет низкой. Я понимаю, что мне можно посоветовать поучить матчасть. Но на это нужно время, а его как всегда нет. Как добиться желаемого одним запросом? |
|||
1
anton-rom86
02.11.18
✎
20:52
|
(0) в запросе, из которого достаешь закупочную цену, создаешь вложенный запрос, в котором находишь цену розничную, связываешь их по номенклатуре и цене с условием, где ЦенаРозничная<ЦенаЗакупочная. Понятно, или подробнее?
|
|||
2
prozex
02.11.18
✎
20:53
|
(1), признаться, нет, не понятно...
|
|||
3
anton-rom86
02.11.18
✎
21:01
|
(2)
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаЗакупочная, ВложенныйЗапрос.ЦенаРозничная ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &Закупочная) КАК ЦеныНоменклатурыСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаРозничная ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &Розничная) КАК ЦеныНоменклатурыСрезПоследних) КАК ВложенныйЗапрос ПО (ВложенныйЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура) И ЦеныНоменклатурыСрезПоследних.Цена > ВложенныйЗапрос.ЦенаРозничная |
|||
4
osa1C
02.11.18
✎
21:02
|
(0) а ты прав, читай матчасть, иначе у тебя завтра возникнет другая проблема и ты опять на форумах решения искать будешь. Тебе в (1) всё уже разжевали. Что не понятно?
|
|||
5
osa1C
02.11.18
✎
21:04
|
(3) сломал систему :)))
|
|||
6
prozex
02.11.18
✎
21:04
|
(3), спасибо, сейчас буду пробовать.
|
|||
7
prozex
02.11.18
✎
21:06
|
(4), любой вопрос можно решить, читая матчасть. Тогда и форумы были бы незачем. Вопрос во времени. Когда нужно решить проблему быстро, тогда и приходится обращаться за помощью более опытных.
|
|||
8
osa1C
02.11.18
✎
21:10
|
(7) надо для этого что-то делать самому. ЗА тебя писать код никто не будет. Если есть проблема, то покажи как ты её начал решать, хоть и с ошибками, вот тогда тебе форум поможет.... Сейчас тебе просто повезло. Но это не будет каждый день, поверь.
|
|||
9
VKS
02.11.18
✎
21:15
|
Сейчас с пакетами запросов столько можно наворотить
|
|||
10
osa1C
02.11.18
✎
21:17
|
(9) вопрос только в какую сторону наворотить
|
|||
11
osa1C
02.11.18
✎
21:21
|
(7) "Когда нужно решить проблему быстро" .... Если будешь вот так вот "быстро" решать не читая матчасть, то за тобой придется много что переделывать. Потому что это заплатки и костыли, которые быстро рвутся и ломаются
|
|||
12
Fram
02.11.18
✎
21:21
|
(7) интересная позиция
|
|||
13
Fram
02.11.18
✎
21:23
|
(11) эксплуатировать таких как (3) тоже надо уметь )
|
|||
14
osa1C
02.11.18
✎
21:24
|
(13) нашелся тут эксплуататор :)))))
|
|||
15
Fram
02.11.18
✎
21:27
|
(14) ну а че! нафига что либо делать, если можно просто попросить кого то сделать это за тебя, и тот кто то еще будет просто доволен тем фактом, что его знания и умения кому то пригодились.
|
|||
16
prozex
02.11.18
✎
21:29
|
(11), да читал я Ваши комментарии и темы. Когда помощь самому нужна - риторика разговора совсем иная. В (3) человек четко дал направление, куда искать. Все остальное - пока флуд, разливаемый для самоутверждения.
Я хорошо разбираюсь в Web. Тема 1С мне чужда. И я хорошо знаю, что толковый специалист либо молчит, либо четко отвечает на вопрос, если хочет. А дилетанты на то и дилетанты, чтобы воздух в пустую сотрясать. |
|||
17
Fram
02.11.18
✎
21:32
|
(16) sql подобные языки веб разработчикам чужды?
|
|||
18
Fram
02.11.18
✎
21:34
|
(16) и не надо подменять понятия. направление вам дали в (1), а в (3) готовое решение. есть ведь разница?
|
|||
19
osa1C
02.11.18
✎
22:48
|
(16) ты никто! человек просящий помощи на форуме показывает какие действия предпринимал он, для решения проблемы... ты же только киксуешь, что мол Web разработчик. Так покажи парочку своих работающих проектов? ...
|
|||
20
prozex
02.11.18
✎
23:01
|
(19), это ты никто, Сашка.
В (3) человек мне дал нормальную подсказку. И я уже почти разобрался что да как. Ты же гораздо больше времени потратил на жмаканье по клавишам, строча ядовитые посты, прячась за монитором. |
|||
21
palsergeich
02.11.18
✎
23:11
|
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаЗакупочная, ВложенныйЗапрос.ЦенаРозничная ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Закупочная) КАК ЦеныНоменклатурыСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаРозничная ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Розничная) КАК ЦеныНоменклатурыСрезПоследних) КАК ВложенныйЗапрос ПО (ВложенныйЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура) И ЦеныНоменклатурыСрезПоследних.Цена > ВложенныйЗапрос.ЦенаРозничная Я бы так сделал. Но ни (3) ни мой запрос не оптимальны, план запроса по факту получился один и тот же там по хорошему если этим запросом будут пользоваться часто надо ВидЦены проиндексировать. Если не будут то и пес с ним. |
|||
22
palsergeich
02.11.18
✎
23:12
|
Ой не тот запрос вставил
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследнихЗакупка.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследнихЗакупка.Цена КАК ЦенаЗакупочная ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Закупочная) КАК ЦеныНоменклатурыСрезПоследнихЗакупка ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Розничная) КАК ЦеныНоменклатурыСрезПоследнихРозница ПО (ЦеныНоменклатурыСрезПоследнихРозница.Номенклатура = ЦеныНоменклатурыСрезПоследнихЗакупка.Номенклатура И ЦеныНоменклатурыСрезПоследнихЗакупка.Цена > ЦеныНоменклатурыСрезПоследнихРозница.Цена) |
|||
23
prozex
02.11.18
✎
23:14
|
(21), я понял, спасибо большое. Сейчас еще пытаюсь совместить это с проверкой количества искомого товара на конкретном складе. Думаю, получится все.
А пользоваться будут не часто. 2-4 раза в месяц всего... |
|||
24
palsergeich
02.11.18
✎
23:16
|
(23) Если 2-4 раза в месяц то пофиг
|
|||
25
palsergeich
02.11.18
✎
23:17
|
(23) Тогда не делай индекс по этому полю, выигрыш того не стоит
|
|||
26
prozex
02.11.18
✎
23:18
|
(25), и не буду. Даже если сделать, тут все равно никто не оценит))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |