Вход | Регистрация



выборка первых заказов

выборка первых заказов
Я
   falselight
 
06.06.18 - 14:12
Здравствуйте! Можете ли подсказать по запросу?
В запрос передается таблица значений (ИД, ТИП, СамаПочта, СамаПочта2)
ИД и ТИП специфические данные.
Список значений с email1 и список значений с email2.

Нужно выбрать самые ранние заказы.
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    майл.СамаПочта  КАК СамаПочта,
        |    майл.СамаПочта2 КАК СамаПочта2,        
        |    майл.Тип        КАК Тип,
        |    майл.ИД         КАК ИД
        |ПОМЕСТИТЬ Почта
        |ИЗ
        |    &майл КАК майл
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    Почта.СамаПочта                       КАК СамаПочта,
        |    Почта.СамаПочта2                      КАК СамаПочта2,
        |    Почта.Тип                             КАК Тип,
        |    Почта.ИД                              КАК ИД,
        |    ЕСТЬNULL(ВложенныйЗапрос.Номер, """") КАК Номер,
        |    ЕСТЬNULL(ВложенныйЗапрос.Дата, """")  КАК Дата
        |ИЗ
        |    Почта КАК Почта
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            Мейл.Представление           КАК Мейл,
        |            МАКСИМУМ(ЗаказКлиента.Номер) КАК Номер,
        |            МИНИМУМ(ЗаказКлиента.Дата)   КАК Дата
        |        ИЗ
        |            Документ.ЗаказКлиента КАК ЗаказКлиента
        |                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                    ПартнерыКонтактнаяИнформация.Ссылка        КАК Ссылка,
        |                    ПартнерыКонтактнаяИнформация.Представление КАК Представление
        |                ИЗ
        |                    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
        |                ГДЕ
        |                    ПартнерыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailПартнера)) КАК Мейл
        |                ПО ЗаказКлиента.Партнер = Мейл.Ссылка
        |        ГДЕ
        |            ЗаказКлиента.Проведен
        |            И Мейл.Представление В(&Представление)
        |        
        |        СГРУППИРОВАТЬ ПО
        |            Мейл.Представление) КАК ВложенныйЗапрос
        |        ПО Почта.СамаПочта = ВложенныйЗапрос.Мейл
        |ГДЕ
        |    НЕ ВложенныйЗапрос.Номер ЕСТЬ NULL
        |
        |УПОРЯДОЧИТЬ ПО
        |    СамаПочта";


    Запрос.УстановитьПараметр("майл",          Параметры.ТЗВыгрузки);
    Запрос.УстановитьПараметр("Представление", СписокЗаказов);
    Запрос.УстановитьПараметр("Представление2", СписокЗаказов2);
    Запрос.УстановитьПараметр("Дата",          ТекущаяДата());
 
 
   falselight
 
1 - 06.06.18 - 14:14
То есть в запрос нужно включить добавленный СамаПочта2 и Представление2, по двум заказам выбрать самый ранний, если есть 2 емайла.
   falselight
 
2 - 06.06.18 - 14:19
(0+) Этот запрос выбирает по параметрам таблице значений где есть email1 и списку значений где также есть email1, ранние заказы партнеров.

Сейчас в таблицу значений добавился email2 и так же есть список значений с email2.

Нужно отбирать по этим двум емайлам ранний заказ, из двух выбранных, или же один как и было если емайл 2 не заполнен.
   DrShad
 
3 - 06.06.18 - 14:22
продолжайте наблюдения и держите нас в курсе
   Мандалай
 
4 - 06.06.18 - 14:34
Вопрос то в чем?
   Гипервизор
 
5 - 06.06.18 - 14:36
Я человек простой. Вижу пост falselight - достаю попкорн.
   aleks_default
 
6 - 06.06.18 - 14:46
(5)грешно смеяться над больными людьми
   Малыш Джон
 
7 - 06.06.18 - 14:47
(6) попкорн можно доставать и с абсолютно серьезным лицом
   falselight
 
8 - 06.06.18 - 15:21
(4) В запрос передается таблица.
Она выбрана в пакете 1.
Пакет 2 это ранний заказ по списку email (первый электронный
адрес).
Пакет 3 это аналог пакета 2 только по списку email2 (второй
электронный адрес).
В итоговом четвертом пакете запроса должен быть электронный
адрес и номер заказа, который с более ранней датой из
заказов выбранных в пакете 2 и пакете 3. Учитывая что
они аналогичны, различаются только списком переданных 
электронных адресов.
Так же следует учитывать что одного из электронных адресов
может не быть в таблице пакета 1 (там есть email и email2).
Тогда выбирается тот который выбран в пакете 2 или 3.

Такая какая то постановка. Мне дали сказали делай.
Не лезь с вопросами, я вот и думаю над задачей.
Решил спросить.
   DrShad
 
9 - 06.06.18 - 15:26
(8) человек, который в таком виде ставит задачу - болен, причем безнадежно
   falselight
 
10 - 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).
 
 Рекламное место пустует
   falselight
 
11 - 06.06.18 - 15:29
(9) Я ему написал вопрос. И постановку, что какие варианты то? Мне нужна обратная информация.

Тот спросил, я не знаю как делать?

Ну вот я дибил видимо. Не знаю. Знал бы сделал.
   Вафель
 
12 - 06.06.18 - 15:29
а как изначальная задача стоит?
   DrShad
 
13 - 06.06.18 - 15:32
(11) ты получил признание на работе - радуйся
   DrShad
 
14 - 06.06.18 - 15:33
+(13) вот честно, несколько раз перечитывал сабж - нифига не понял о том что конкретно содержится в таблицах

ну а самый ранний это минимум по дате, если не учитывать момент времени, в группировке по электронке
   falselight
 
15 - 06.06.18 - 15:34
(12) С интернета приходит XML. XDTO.
Формируется таблица где есть адрес электронной почты
(email).
И список с этими email.

Нужно выбрать ранние заказы по этим email.

То есть по email выбирается партнер и его заказ.
И отслеживается все связями и условиями.

Сейчас добавили email2. Нужно выбирать самые ранние заказы
по этим партнерам, найденным по email и параллельно по
email2. И так же выбрать самый ранний заказ ещё из них.
Или один, если второго email2 нет.

Не пойму как это можно представить в запросе.
   Вафель
 
16 - 06.06.18 - 15:34
те нужно на каждый емайл найти самый первый заказ?
делай в цикле, так проще гораздо будет
   falselight
 
17 - 06.06.18 - 15:36
(14) В таблицах переданных в параметрах????

вот первая таблица
        |    майл.СамаПочта  КАК СамаПочта,
        |    майл.СамаПочта2 КАК СамаПочта2,        
        |    майл.Тип        КАК Тип,
        |    майл.ИД         КАК ИД


и ещё в запрос передаются 2 списка, список с email и
email2.
   falselight
 
18 - 06.06.18 - 15:37
(14) Ну там и идет по дате, вроде

  |            МИНИМУМ(ЗаказКлиента.Дата)   КАК Дата
   falselight
 
19 - 06.06.18 - 15:38
(16) как в цикле????
Сказали править запрос, и там от силы 30 минут на все
максимум.
   DrShad
 
20 - 06.06.18 - 15:49
а где заказ?
   falselight
 
21 - 06.06.18 - 15:56
(16) Нельзя сказали в цикле, цикл это зло.
Ну вот я и не знаю как это уложить в запросе.
Да не дружу я особо с логическим построением запроса.
Даже курс по нему не просмотрел.
   falselight
 
22 - 06.06.18 - 15:56
(20) вот он, -

  ИЗ
        |            Документ.ЗаказКлиента КАК ЗаказКлиента
        |                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                    ПартнерыКонтактнаяИнформация.Ссылка        КАК Ссылка,
        |                    ПартнерыКонтактнаяИнформация.Представление КАК Представление
   Ёпрст
 
23 - 06.06.18 - 16:02
(0)


Выбрать мейл,ссылка из ТабличкаДокументов Где
((дата,мейл) в ( Выбрать максимум(дата),мейл из ТабличкаДокументов Сгруппировать По мейл)
   Ёпрст
 
24 - 06.06.18 - 16:04
ну, там на Минимум заменишь, если нужны первые, а не последние заказы, занимайся
   falselight
 
25 - 06.06.18 - 16:44
(24) Не подскажете где примеров таких запросов можно
посмотреть что бы научиться. И прояснить в голове, как
делать то что сейчас вот не понятно?
   Ёпрст
 
26 - 06.06.18 - 16:55
(25) любую вминяемую книжку по t-sql
   falselight
 
27 - 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) Причем злобно кастрированный ((
   hhhh
 
30 - 06.06.18 - 18:42
(27) зачем спрашивал тогда? Если сам знаешь где смотреть?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует