2012-07-27 134 views
0

我来自一个带有一点mySQL的访问背景,所以当涉及到SQL时我稍微丢失了一些。选择返回表格的最后一条记录

这里是我使用的查询:

Select 
    tbl_AcerPFSSurveyIVR.NTlogin, 
    tbl_AcerPFSSurveyIVR.Customer_Firstname, 
    tbl_AcerPFSSurveyIVR.Customer_Lastname, 
    tbl_AcerPFSSurveyIVR.CaseId, 
    tbl_AcerPFSSurveyIVR.ContactNumber, 
    CRM_TRN_ORDER.ORDER_PRICE, 
    CRM_TRN_ORDER.ORDER_CREATEDDATE 

这将返回正确的记录,但我想在最后...我知道我应该使用这样的事情...

SELECT TOP 1 * 
FROM table_Name 
ORDER BY unique_column DESC 

我在哪里迷路,如果我说得对,你只能做一个选择......那么我该如何整合这两个?在此先感谢您的帮助。

+0

也许增加一些示例数据?有多个表吗? – Andomar 2012-07-27 17:57:50

+0

你的问题是什么?你的例子中只有一个“选择”。无论“from”子句中有多少个表,您都可以对任何select查询使用“top”子句。 – 2012-07-27 18:08:39

+0

你必须展示这些表格是如何链接的。什么是外键?然后你可以使用连接。 – 2012-07-27 18:09:49

回答

2

你想要什么是一样的东西:

SELECT TOP(1) 
    tbl_AcerPFSSurveyIVR.NTlogin, 
    tbl_AcerPFSSurveyIVR.Customer_Firstname, 
    tbl_AcerPFSSurveyIVR.Customer_Lastname, 
    tbl_AcerPFSSurveyIVR.CaseId, 
    tbl_AcerPFSSurveyIVR.ContactNumber, 
    CRM_TRN_ORDER.ORDER_PRICE, 
    CRM_TRN_ORDER.ORDER_CREATEDDATE 
FROM 
    tbl_AcerPFSSurveyIVR 
JOIN CRM_TRN_ORDER 
    ON tbl_AcerPFSSurveyIVR.CustomerId = CRM_TRN_ORDER.CUSTOMERID 
ORDER BY 
    CRM_TRN_ORDER.ORDER_CREATEDDATE DESC 

注:我做了JOIN子句,因为我不知道你的架构。假设有某种外键关系,你应该选择满足连接的实列。否则,你只会采取笛卡尔产品,这很可能不是你想要的。但是,您可以通过将上面的FROM ... JOIN子句替换为“FROM tbl_AcerPFSSurveyIVR,CRM_TRN_ORDER”来实现。

+1

你可能还需要'FROM SomeTable'在'ORDER BY'之前.... – 2012-07-27 18:11:17

+0

不要'忘记FROM,因为它根本不会工作 – phadaphunk 2012-07-27 18:12:35

+0

,我想他问了一个ORDER BY unique_Column? – phadaphunk 2012-07-27 18:13:08

0

你试过:

Select TOP (1) 
tbl_AcerPFSSurveyIVR.NTlogin, 
tbl_AcerPFSSurveyIVR.Customer_Firstname, 
tbl_AcerPFSSurveyIVR.Customer_Lastname, 
tbl_AcerPFSSurveyIVR.CaseId, 
tbl_AcerPFSSurveyIVR.ContactNumber, 
CRM_TRN_ORDER.ORDER_PRICE, 
CRM_TRN_ORDER.ORDER_CREATEDDATE 
FROM Table_Name ORDER BY unique_Column DESC 

这包括在你以前的查询顶部1和过滤器在同一时间的降序请求。我理所当然地认为第一个SELECT是从table_name

+0

上面使用的海报“FROM Table_Name ORDER BY unique_Column DESC”仅仅是一个例子。我不认为他们打算将两者合并成一个SQL语句。 – 2012-07-28 10:50:13