Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2014, 09:58   #1
madace
Пользователь
 
Регистрация: 15.10.2009
Сообщений: 15
По умолчанию Помогите составить запрос новичку pls

Добрый день всем -
есть 2 таблицы
1: MATRIX
поля
DateOn- date
NameID- varchar
Location - varchar
2: Namelist
поля
NamesID- varchar

таблица 2 содержит список уникальных значений имен таблицы 1

Нужно:
выборка уникальных пар NameID - Location, имеющих максимальную дату dateOn

те из пары
иванов - москва 01/01/1999
иванов - москва 01/01/2999 - только эта


в экселе я сделал это за 2 минуты - но очень хочу понять как это сделать в sql - помогите плз
madace вне форума Ответить с цитированием
Старый 15.04.2014, 14:44   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
SELECT NameID, Location FROM MATRIX
WHERE DateOn = (SELECT MAX(DateOn) FROM MATRIX)
Так колупал на вскидку. А причем здесь NameList?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.04.2014, 17:54   #3
madace
Пользователь
 
Регистрация: 15.10.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
SELECT NameID, Location FROM MATRIX
WHERE DateOn = (SELECT MAX(DateOn) FROM MATRIX)
Так колупал на вскидку. А причем здесь NameList?
Спасибо за попытку помочь, но, к сожалению этот запрос не работает, так, как мне надо.

у меня 200 имен и 5 локаций ( и много дат) - мне надо собрать уникальные пары имя-локация (200х5=1000) с наибольшей датой каждой пары (см пример выше) - ваш вариант этого не делает
в таблице 2 есть все уникальные имена- думал это поможет
madace вне форума Ответить с цитированием
Старый 15.04.2014, 20:52   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Если у вас СУБД Oracle то попробуйте так
Код:
 SELECT NameID, Location, DateOn 
 FROM (SELECT  NameID, Location, DateOn 
          FROM MATRIX
          ORDER BY DateOn DESC)
  WHERE rownum <= 2
А если MS SQL тогда надо написать так
Код:
 SELECT TOP(2) NameID, Location, DateOn 
           FROM MATRIX
           ORDER BY DateOn DESC
Попробуйте и пишите что у вас получится .... А то тема не понятно Помогите составить запрос новичку pls Что такой pls ???
xxbesoxx вне форума Ответить с цитированием
Старый 15.04.2014, 21:05   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Да уж
Код:
SELECT NameID, Location , MAX(DateOn) AS DateOn
  FROM MATRIX
  GROUP BY NameID, Location
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить запрос. Firebird tarakan1983 SQL, базы данных 4 05.04.2014 16:16
Помогите составить SQL запрос с вычислением Gift020 Помощь студентам 5 09.10.2013 13:33
Помогите, кому не жалко, составить запрос ГиТ SQL, базы данных 9 07.09.2009 07:05
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12
Помогите составить запрос или перепроектировать БД Neurotechnic БД в Delphi 1 27.07.2009 10:51