SQL - 帮助编写查询

时间:2009-10-06 15:48:28

标签: sql datetime

我确定如何做到这一点,并寻求一些帮助。在SQL中,我需要一个类似于此的查询获取最后订购日期的所有人ID大于x(预定义日期)。我尝试过使用Max(),但它似乎没有正常工作。

感谢

8 个答案:

答案 0 :(得分:3)

这样的东西

SELECT ID 来自PeopleTable 在哪里LAST_ORDER_DATE> '01 -Jun-2009'

如何处理日期取决于您的RDBMS

答案 1 :(得分:3)

我猜你不知道最后的订单日期是什么?

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

答案 2 :(得分:1)

简单地:

从人员中选择*,其中lastOrderDate> @InputDate

答案 3 :(得分:1)

这实际上取决于表结构。如果users表中有“Last Order Date”列,则:

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

答案 4 :(得分:0)

使用WHERE子句。

MSDN: WHERE Clause

答案 5 :(得分:0)

当然这需要更多信息...... 您是否加入订单表? 你可以提供一些ddl,否则你拥有的东西非常简单:

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

没有更多的信息就没有认真的了......

答案 6 :(得分:0)

SELECT PERSON_ID FROM ORDERS WHERE ORDER_DATE>DATE('2000-01-01')

答案 7 :(得分:0)

我已经得到了它的工作:

SELECT PeopleId FROM Orders Group By PeopleId Having Max(OrderDate)<'9/23/2009'