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

Откуда: Сибирь
Сообщений: 8
Есть две таблицы. В одной лежат названия и типы файлов. Названия отличаются первыми двумя буквами, а с 3 по 10 знак полностью совпадают, но у каждого свой тип 1 или 5. Нужно исключить из поиска пару файлов с одинаковой частью имени, и где есть 1 и 5 тип. А оставить только те файлы где нету либо 1 либо 5. Вторая таблица используется для введения временных ограничений. Можно ли реализовать вообще такой запрос. Ведь тогда таблица обращается сама к себе. Больше не от куда взять имя файлов =(
6 мар 13, 12:21    [14018736]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Zolmo,

Вы попробуйте всетаки ваш поток сознания оформить согласно этому
6 мар 13, 12:25    [14018764]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
Добрый Э - Эх
Guest
Zolmo,

таблицу в запросе можно использовать и более одного раза. просто для каждого последующего использования её нужно назначить алиас.
Запрос же банальный - либо на in/exists, либо группировка с последующей фильтрацией (having).
6 мар 13, 12:33    [14018835]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
Zolmo
Member

Откуда: Сибирь
Сообщений: 8
/* Formatted on 06.03.2013 10:49:42 (QP5 v5.160) */
SELECT DISTINCT
       SUBSTR (a.name, 3, 10), MAX (b.tim), 
       CASE
         WHEN a1.a_type = 5 AND  a1.file_type = 1 THEN 'на складе' -- 5 - 'на складе
         WHEN  a.a_type = 1 AND  a.file_type = 1 THEN 'в зале' -- 1 в зале
           END
           "Òèï"
         FROM product a, sells b, product a1
 WHERE b.tim BETWEEN TO_DATE ('01.02.2013 00.00.00',
                                        'dd.mm.yyyy hh24:mi:ss')
                           AND TO_DATE ('01.03.2013 23.59.59',
                                        'dd.mm.yyyy hh24:mi:ss')
       AND a.id = a1.id
       AND a.id = b.src_id(+)
       AND a.cod LIKE '78954%'
       AND a.status > 0
       AND a1.status > 0
       GROUP BY SUBSTR (a.name, 3, 10),a.a_type,a1.file_type
       ORDER BY  MAX (b.tim) DESC 


сейчас запрос выглядит так, он просто показывает все что есть на складе и в зале, а нужно что бы показывал только то что на складе и только то что в зале, за определенный период. При этом тот товар что есть и в зале и на складе не показывал
6 мар 13, 12:36    [14018855]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Zolmo,

а вы точно на mssql запрос выполняете?
6 мар 13, 12:41    [14018898]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
Zolmo
Member

Откуда: Сибирь
Сообщений: 8
WarAnt, работа через sql навигатор. Пишем на простом sql, сервер должен быть mssql
6 мар 13, 12:43    [14018915]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
vadim-tmn
Member

Откуда:
Сообщений: 52
sql навигатор это вроде как Oracle
6 мар 13, 12:44    [14018924]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Zolmo
WarAnt, работа через sql навигатор. Пишем на простом sql, сервер должен быть mssql


не заню что там у вас за навигатор но ведет он точно не на сиквел, нет таких функций как SUBSTR и TO_DATE
вы форумом ошиблись.
что до запроса, то совсем непонятно зачем второй джойн на product, и вобще непонятно что этот запрос выводить должен
6 мар 13, 12:49    [14018975]     Ответить | Цитировать Сообщить модератору
 Re: Помогите пожалуйста с запросом  [new]
Добрый Э - Эх
Guest
Zolmo,

синтаксис внешних соединений на плюсиках, функции to_date и substr как бы намекают, что СУБД - Oracle
6 мар 13, 12:51    [14018982]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить