|
выборка первых заказов | ☑ | ||
---|---|---|---|---|
0
falselight
06.06.18
✎
14:12
|
Здравствуйте! Можете ли подсказать по запросу?
В запрос передается таблица значений (ИД, ТИП, СамаПочта, СамаПочта2) ИД и ТИП специфические данные. Список значений с email1 и список значений с email2. Нужно выбрать самые ранние заказы. Запрос.Текст = "ВЫБРАТЬ | майл.СамаПочта КАК СамаПочта, | майл.СамаПочта2 КАК СамаПочта2, | майл.Тип КАК Тип, | майл.ИД КАК ИД |ПОМЕСТИТЬ Почта |ИЗ | &майл КАК майл |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Почта.СамаПочта КАК СамаПочта, | Почта.СамаПочта2 КАК СамаПочта2, | Почта.Тип КАК Тип, | Почта.ИД КАК ИД, | ЕСТЬNULL(ВложенныйЗапрос.Номер, """") КАК Номер, | ЕСТЬNULL(ВложенныйЗапрос.Дата, """") КАК Дата |ИЗ | Почта КАК Почта | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Мейл.Представление КАК Мейл, | МАКСИМУМ(ЗаказКлиента.Номер) КАК Номер, | МИНИМУМ(ЗаказКлиента.Дата) КАК Дата | ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка, | ПартнерыКонтактнаяИнформация.Представление КАК Представление | ИЗ | Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация | ГДЕ | ПартнерыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailПартнера)) КАК Мейл | ПО ЗаказКлиента.Партнер = Мейл.Ссылка | ГДЕ | ЗаказКлиента.Проведен | И Мейл.Представление В(&Представление) | | СГРУППИРОВАТЬ ПО | Мейл.Представление) КАК ВложенныйЗапрос | ПО Почта.СамаПочта = ВложенныйЗапрос.Мейл |ГДЕ | НЕ ВложенныйЗапрос.Номер ЕСТЬ NULL | |УПОРЯДОЧИТЬ ПО | СамаПочта"; Запрос.УстановитьПараметр("майл", Параметры.ТЗВыгрузки); Запрос.УстановитьПараметр("Представление", СписокЗаказов); Запрос.УстановитьПараметр("Представление2", СписокЗаказов2); Запрос.УстановитьПараметр("Дата", ТекущаяДата()); |
|||
1
falselight
06.06.18
✎
14:14
|
То есть в запрос нужно включить добавленный СамаПочта2 и Представление2, по двум заказам выбрать самый ранний, если есть 2 емайла.
|
|||
2
falselight
06.06.18
✎
14:19
|
(0+) Этот запрос выбирает по параметрам таблице значений где есть email1 и списку значений где также есть email1, ранние заказы партнеров.
Сейчас в таблицу значений добавился email2 и так же есть список значений с email2. Нужно отбирать по этим двум емайлам ранний заказ, из двух выбранных, или же один как и было если емайл 2 не заполнен. |
|||
3
DrShad
06.06.18
✎
14:22
|
продолжайте наблюдения и держите нас в курсе
|
|||
4
Мандалай
06.06.18
✎
14:34
|
Вопрос то в чем?
|
|||
5
Гипервизор
06.06.18
✎
14:36
|
Я человек простой. Вижу пост falselight - достаю попкорн.
|
|||
6
aleks_default
06.06.18
✎
14:46
|
(5)грешно смеяться над больными людьми
|
|||
7
Малыш Джон
06.06.18
✎
14:47
|
(6) попкорн можно доставать и с абсолютно серьезным лицом
|
|||
8
falselight
06.06.18
✎
15:21
|
(4) В запрос передается таблица.
Она выбрана в пакете 1. Пакет 2 это ранний заказ по списку email (первый электронный адрес). Пакет 3 это аналог пакета 2 только по списку email2 (второй электронный адрес). В итоговом четвертом пакете запроса должен быть электронный адрес и номер заказа, который с более ранней датой из заказов выбранных в пакете 2 и пакете 3. Учитывая что они аналогичны, различаются только списком переданных электронных адресов. Так же следует учитывать что одного из электронных адресов может не быть в таблице пакета 1 (там есть email и email2). Тогда выбирается тот который выбран в пакете 2 или 3. Такая какая то постановка. Мне дали сказали делай. Не лезь с вопросами, я вот и думаю над задачей. Решил спросить. |
|||
9
DrShad
06.06.18
✎
15:26
|
(8) человек, который в таком виде ставит задачу - болен, причем безнадежно
|
|||
10
falselight
06.06.18
✎
15:27
|
(0) P.S. В (0)
В пакете 1 выбираются поля таблицы значений переданной в качестве параметра. Там есть 1 email. В Запросе пакета 2 по смыслу запроса (0) выбирается номер раннего заказа по списку электронных адресов партнера. Сейчас в таблицу выбираемую в пакете 1 добавили email2. И нужно теперь выбирать тещё и более ранний заказ из этих 2х email. Список email 1 передается в пакет запроса 2. Список email2 передается в пакет запроса 3. В запросе 4 должен быть ранний заказ из этих 2х email. Учитывая то что одного из email может не быть, там "". Все что я понимаю. Надо сделать. Может как то иначе. Запрос который нужно модифицировать в (0). |
|||
11
falselight
06.06.18
✎
15:29
|
(9) Я ему написал вопрос. И постановку, что какие варианты то? Мне нужна обратная информация.
Тот спросил, я не знаю как делать? Ну вот я дибил видимо. Не знаю. Знал бы сделал. |
|||
12
Вафель
06.06.18
✎
15:29
|
а как изначальная задача стоит?
|
|||
13
DrShad
06.06.18
✎
15:32
|
(11) ты получил признание на работе - радуйся
|
|||
14
DrShad
06.06.18
✎
15:33
|
+(13) вот честно, несколько раз перечитывал сабж - нифига не понял о том что конкретно содержится в таблицах
ну а самый ранний это минимум по дате, если не учитывать момент времени, в группировке по электронке |
|||
15
falselight
06.06.18
✎
15:34
|
(12) С интернета приходит XML. XDTO.
Формируется таблица где есть адрес электронной почты (email). И список с этими email. Нужно выбрать ранние заказы по этим email. То есть по email выбирается партнер и его заказ. И отслеживается все связями и условиями. Сейчас добавили email2. Нужно выбирать самые ранние заказы по этим партнерам, найденным по email и параллельно по email2. И так же выбрать самый ранний заказ ещё из них. Или один, если второго email2 нет. Не пойму как это можно представить в запросе. |
|||
16
Вафель
06.06.18
✎
15:34
|
те нужно на каждый емайл найти самый первый заказ?
делай в цикле, так проще гораздо будет |
|||
17
falselight
06.06.18
✎
15:36
|
(14) В таблицах переданных в параметрах????
вот первая таблица | майл.СамаПочта КАК СамаПочта, | майл.СамаПочта2 КАК СамаПочта2, | майл.Тип КАК Тип, | майл.ИД КАК ИД и ещё в запрос передаются 2 списка, список с email и email2. |
|||
18
falselight
06.06.18
✎
15:37
|
(14) Ну там и идет по дате, вроде
| МИНИМУМ(ЗаказКлиента.Дата) КАК Дата |
|||
19
falselight
06.06.18
✎
15:38
|
(16) как в цикле????
Сказали править запрос, и там от силы 30 минут на все максимум. |
|||
20
DrShad
06.06.18
✎
15:49
|
а где заказ?
|
|||
21
falselight
06.06.18
✎
15:56
|
(16) Нельзя сказали в цикле, цикл это зло.
Ну вот я и не знаю как это уложить в запросе. Да не дружу я особо с логическим построением запроса. Даже курс по нему не просмотрел. |
|||
22
falselight
06.06.18
✎
15:56
|
(20) вот он, -
ИЗ | Документ.ЗаказКлиента КАК ЗаказКлиента | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка, | ПартнерыКонтактнаяИнформация.Представление КАК Представление |
|||
23
Ёпрст
06.06.18
✎
16:02
|
(0)
Выбрать мейл,ссылка из ТабличкаДокументов Где ((дата,мейл) в ( Выбрать максимум(дата),мейл из ТабличкаДокументов Сгруппировать По мейл) |
|||
24
Ёпрст
06.06.18
✎
16:04
|
ну, там на Минимум заменишь, если нужны первые, а не последние заказы, занимайся
|
|||
25
falselight
06.06.18
✎
16:44
|
(24) Не подскажете где примеров таких запросов можно
посмотреть что бы научиться. И прояснить в голове, как делать то что сейчас вот не понятно? |
|||
26
Ёпрст
06.06.18
✎
16:55
|
(25) любую вминяемую книжку по t-sql
|
|||
27
falselight
06.06.18
✎
17:07
|
(26) Мне интересно где выбрать в выбрать
эти приёмы бы заучить. Но а по запросам 1с ести такие ресурсы? Зачвем T-SQL То? Пишется же все на 1с. Вот на 1с и нужно смотреть. |
|||
28
Ёпрст
06.06.18
✎
17:29
|
(27) затем, что 1с использует кастрированный t-sql синтаксис в запросах.
|
|||
29
Гипервизор
06.06.18
✎
18:20
|
(28) Причем злобно кастрированный ((
|
|||
30
hhhh
06.06.18
✎
18:42
|
(27) зачем спрашивал тогда? Если сам знаешь где смотреть?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |