SQL - Помощь при написании запроса - PullRequest
0 голосов
/ 06 октября 2009

Я уверен, как это сделать, и искал некоторую помощь. В SQL мне нужен запрос, который выглядит так: Получить все идентификаторы людей, у которых дата последнего заказа больше, чем x (предопределенная дата). Я пытался использовать Max (), но, похоже, он работает неправильно.

спасибо

Ответы [ 8 ]

3 голосов
/ 06 октября 2009

Что-то вроде

ВЫБЕРИТЕ ID ИЗ PeopleTable ГДЕ LAST_ORDER_DATE> '01-ИЮНЬ-2009 '

Способ обработки дат зависит от вашей РСУБД

3 голосов
/ 06 октября 2009

Полагаю, вы не знаете, какая дата последнего заказа?

Select people_id
    , Max(Order_Date) as last_order_date
from orders_table AS O
Group By people_id
Having Max(Order_Date) > @CutOff_Date
1 голос
/ 06 октября 2009

Это на самом деле зависит от структуры таблицы. Если в таблице пользователей есть столбец «Дата последнего заказа», то:

SELECT UserID
   FROM Users
   WHERE LastOrderDate > 'predefined date'

Если вам нужно найти его в таблице «заказов», это может быть правильным

SELECT DISTINCT UserID
   FROM Orders
   WHERE OrderDate > 'predefined date'

Или, может быть, если вам нужно учесть статус пользователя, то ...

SELECT DISTINCT O.UserID
   FROM Orders O
   INNER JOIN Users U ON U.UserID = O.UserID
   WHERE O.OrderDate > 'predefined date'
     AND U.UserStatus = 1
1 голос
/ 06 октября 2009

Просто:

выберите * из Людей, где lastOrderDate> @ InputDate

0 голосов
/ 06 октября 2009

Я заставил его работать с этим:

SELECT PeopleId FROM Orders Group By PeopleId Having Max(OrderDate)<'9/23/2009'
0 голосов
/ 06 октября 2009
SELECT PERSON_ID FROM ORDERS WHERE ORDER_DATE>DATE('2000-01-01')
0 голосов
/ 06 октября 2009

Конечно, для этого нужна дополнительная информация ... Вы присоединяетесь к столу заказов? Можете ли вы предоставить некоторые ddl, в противном случае с тем, что у вас есть выше, довольно просто:

SELECT blah1, blah2...FROM MyTable WHERE LastOrderDate > x

Нет, серьезно, без дополнительной информации, вот что это такое ...

0 голосов
/ 06 октября 2009

Используйте предложение WHERE.

MSDN: ГДЕ пункт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...