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

Откуда:
Сообщений: 39
Добрый день подскажите каким образом можно произвести поиск по данным таблицы , в то время когда where использовать нельзя и можно ли так сделать?
Схематично задача такая:
Есть таблица с полями Фамилия, Имя, Отчество, Дата Рождения дальше идут данные о товарах
Надо по ФИО и Дате Рождения найти остальную информацию
21 мар 17, 14:00    [20317636]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21101
Максим420
where использовать нельзя

Да лехко!
SELECT field1, field2, ... fieldN
FROM datatable
GROUP BY field1, field2, ... fieldN
HAVING fieldX = 'literalX' AND ... AND fieldY = 'literalY'

Как видишь, секция WHERE отсутствует.
21 мар 17, 14:09    [20317691]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
MacaronicTragedy
Member

Откуда:
Сообщений: 99
Максим420,

а чем плох where?
можно, конечно что-то вроде
select first_name, last_name, patronymic, birth_date, good1, good2
from some_table
group by first_name, last_name, patronymic, birth_date, good1, good2
having first_name = 'vasya'

но это уже какой-то изврат, имхо
21 мар 17, 14:09    [20317694]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
o-o
Guest
Максим420
Добрый день подскажите каким образом можно произвести поиск по данным таблицы , в то время когда where использовать нельзя и можно ли так сделать?

о да.
глазками.
order by-то можно использовать?
примерно на нужную букву открутить экран и искать.
----
это сейчас такие уроки извращения ГДЕ задают?
21 мар 17, 14:10    [20317703]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Ответ: Привлечь для решения задачи специалиста. :)
21 мар 17, 14:11    [20317709]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
Забыли также join вместо WHERE. :)
21 мар 17, 14:12    [20317715]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
o-o
Guest
Владислав Колосов
Забыли также join вместо WHERE. :)

во, точно.
у него как раз в заголовке темы "переменная".
значит, в табличную переменную кладем требуемое фио и джойним
21 мар 17, 14:19    [20317762]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 659
Мне одному кажется, что с каждым годом по весне студенты где-то достают все более забористую траву?

Akina, это не спортивно, сказано же через переменную!

+ Максим, одумайся!
DECLARE  @ДаноФамилия               VARCHAR(100) = 'Иванов'
       , @ДаноИмя                   VARCHAR(100) = 'Иван'
       , @ДаноОтчество              VARCHAR(100) = 'Иванович'
       , @ДаноДатаРождения          VARCHAR(100) = '17.05.86'
       , @Фамилия                   VARCHAR(100)
       , @Имя                       VARCHAR(100)
       , @Отчество                  VARCHAR(100)
       , @ДатаРождения              VARCHAR(100)
       , @ДальшеИдутДанныеОТоварах  VARCHAR(100)
;
DECLARE cur CURSOR FOR
SELECT [t].[Фамилия], [t].[Имя], [t].[Отчество], [t].[ДатаРождения], [t].[ДальшеИдутДанныеОТоварах]
    FROM [dbo].[ЕстьТаблицаСПолями] [t]
;
OPEN cur;
WHILE 1 = 1
BEGIN
    FETCH NEXT FROM cur INTO @Фамилия, @Имя, @Отчество, @ДатаРождения, @ДальшеИдутДанныеОТоварах;
    IF @@FETCH_STATUS <> 0
        BREAK;
    
    IF     @Фамилия         = @ДаноФамилия
       AND @Имя             = @ДаноИмя
       AND @Отчество        = @ДаноОтчество
       AND @ДатаРождения    = @ДаноДатаРождения
    BEGIN
        SELECT 'Нашел!';
    END
    ELSE
    BEGIN
        SELECT 'Не нашел :(';
    END;
    
END;
CLOSE cur;
DEALLOCATE cur;
21 мар 17, 14:41    [20317858]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Максим420
Member

Откуда:
Сообщений: 39
Благодарю за ответы )) очень весело у вас тут ) варианты хорошие спасибо ещё раз но подскажите
DECLARE @IM nvarchar(20)=N'ТАТЬЯНА'
DECLARE @FAM nvarchar(20)=N'ЛОКАЦКАЯ'
DECLARE @OT nvarchar(20)=N'НИКОЛАЕВНА'
DECLARE @BDAT date ='????' /*Кстати Как указать таким образом дату???*/
SELECT @IM=a.ANKETA_IM, @FAM=a.ANKETA_FAM, @OT=a.ANKETA_OT
FROM Port.Ankets a
SELECT *

какая то хрен получается (
21 мар 17, 14:51    [20317914]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Максим420,

автор
какая то хрен получается (

да ты вообще всё нафиг прогулял...
21 мар 17, 14:52    [20317917]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Максим420
Member

Откуда:
Сообщений: 39
TaPaK,
Сорян хоумисы вы мои гуру в этой теме я просто хреново понимаю училку а вы норм рассказываете и примеры и все дела
21 мар 17, 14:54    [20317923]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Максим420,

томбовский волк тебе хоумис!
пришлось даже загуглить...
21 мар 17, 14:59    [20317948]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Guf
Member

Откуда: Новосибирск
Сообщений: 659
Максим420,

Забудь про училку, возьми книжку почитай http://it-ebooks.ru/publ/microsoft/microsoft_sql_server_2008_t_sql/9-1-0-446
Пока не прочитаешь, не приходи.
21 мар 17, 15:01    [20317954]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Максим420
Member

Откуда:
Сообщений: 39
Guf,Уже качаю
21 мар 17, 15:21    [20318057]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Максим420
Member

Откуда:
Сообщений: 39
TaPaK,
да ладно тамбовский я же с хорошими мыслями это говорил и кем надо быть чтобы приходить за помощью и говорить что то плохое
21 мар 17, 15:23    [20318061]     Ответить | Цитировать Сообщить модератору
 Re: Поиск данных через переменную, а не через WHERE  [new]
Adx
Guest
Я бы еще посоветовал русский подтянуть. Сдавать же придется.
21 мар 17, 16:19    [20318341]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить