|   |   | 
| 
 | Подскажите с запросом, пожалуйста! | ☑ | ||
|---|---|---|---|---|
| 0
    
        yabes 19.11.12✎ 23:27 | 
        Здравствуйте! Подскажите, а то я уже голову сломал. Возьмем, к примеру, документы "Счет на оплату покупателю". Счета выставляются разным контрагентам. Как написать запрос, чтобы получить список счетов, в котором по каждому контрагенту выбран один самый новый документ?     | |||
| 1
    
        XLife 19.11.12✎ 23:28 | 
        максимум по дате с группировкой по контрагенту     | |||
| 2
    
        КошерныйТролль 19.11.12✎ 23:29 | 
        максимум(документ)     | |||
| 3
    
        КошерныйТролль 19.11.12✎ 23:31 | 
        (1) максимум по дате вернет максимум даты а не документ     | |||
| 4
    
        XLife 19.11.12✎ 23:32 | 
        (3) а максимум по документу введенному задним числом что вернет?     | |||
| 5
    
        КошерныйТролль 19.11.12✎ 23:34 | 
        (4)  а каким образом (1) решает вопрос?     | |||
| 6
    
        КошерныйТролль 19.11.12✎ 23:37 | 
        кстати, никогда не видел чтобы счета на оплату вводились задним числом )     | |||
| 7
    
        XLife 19.11.12✎ 23:38 | 
        (6) не умничай ашот, тебе не идет     | |||
| 8
    
        yabes 19.11.12✎ 23:40 | 
        (2),(1). И правда, в одном случае максимум даты, во втором проблемы возникнут, если документ задним числом ввести! Так Как быть? (6) Счет на оплату - это пример. Могут быть и другие документы!     | |||
| 9
    
        yabes 19.11.12✎ 23:44 | 
        А если Сделать пакетный запрос. В первом получить таблицу: Контрагент, самая последняя дата и соединить с таблицей Счет на оплату по контрагенту и дате! Только вместо даты использовать Момент времени, чтобы документов с одним моментом не было! Получится?     | |||
| 10
    
        КошерныйТролль 19.11.12✎ 23:44 | 
        (8) а каким образом просто максимум по дате даст ему последний документ?     | |||
| 11
    
        КошерныйТролль 19.11.12✎ 23:48 | 
        (9) а если в пределах даты момента времени был введен документ задним числом? Так , как предлагаешь ты, не решается ситуация, что два счета выписаны в одну и ту же секунду.     | |||
| 12
    
        КошерныйТролль 19.11.12✎ 23:50 | 
        имхо, тс интересует последний введенный документ  максимум(док) эту задачу решает     | |||
| 13
    
        yabes 19.11.12✎ 23:53 | 
        (12) Максимум(Док) найдет тебе максимальную ссылку! К примеру, если я введу новый документ и укажу ему прошлый год, то у него будет максимальная ссылка и запрос покажет его!     | |||
| 14
    
        XLife 19.11.12✎ 23:55 | 
        (13) сделай сначала максимум по дате, а потом от него еще и максимум по ссылке     | |||
| 15
    
        yabes 19.11.12✎ 23:56 | 
        (14) Что и есть Максимум по моменту времени!))) Момент времени - это дата + ссылка     | |||
| 16
    
        alexei366 19.11.12✎ 23:58 | 
        Сортировка по дате,и Выбрать различные     | |||
| 17
    
        ssh2012 20.11.12✎ 00:10 | 
        Вариант:
  ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, ЗаказПокупателя.Ссылка КАК Заказ ПОМЕСТИТЬ Таб ИЗ Справочник.Контрагенты КАК Контрагенты ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя ПО (ЗаказПокупателя.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ЗаказПокупателя.Ссылка КАК Ссылка ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.Контрагент = Контрагенты.Ссылка УПОРЯДОЧИТЬ ПО ЗаказПокупателя.Дата УБЫВ, Ссылка УБЫВ)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таб.Контрагент, Таб.Заказ ИЗ Таб КАК Таб ГДЕ Таб.Заказ ЕСТЬ НЕ NULL | |||
| 18
    
        25-11 20.11.12✎ 00:11 | 
        1-ый запрос: максимум даты с группировкой по контрагенту
  2-ой запрос: соединение с исходной таблицей (контрагент, документ, дата) по двум полям: контрагент и дата. Можно, ессно, и в одном запросе. | |||
| 19
    
        КошерныйТролль 20.11.12✎ 00:37 | 
        можно обойтись без пакета запросов     | |||
| 20
    
        КошерныйТролль 20.11.12✎ 00:40 | 
        и без выбрать первые. Достаточно одного соединения.     | |||
| 21
    
        КошерныйТролль 20.11.12✎ 00:44 | 
        соединение надо писать по функции максимум(документ) и по дата. Намерена туда запихивать условие в виде вложенного запроса?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |