簡體   English   中英

如何從SQL中的表中的列獲取最新日期?

[英]How to get latest date from a column in a table in sql?

我正在嘗試使用sql,asp.net從OrderItem表中獲取最新日期。 但是,當我運行程序時,它們顯示此錯誤: Incorrect syntax near the keyword 'from'.

這是我的代碼:

    string strconnect =  ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
    SqlConnection myConnect = new SqlConnection(strconnect);

    string command = "
      Select OrderItem.ProductID, Product.Name, OrderItem.TotalQty, Product.UnitPrice, OrderItem.TotalPrice 
      FROM OrderItem 
      INNER JOIN Product ON OrderItem.ProductID=Product.ProductID 
      WHERE OrderDate = MAX(OrderDate) from OrderItem";
    SqlCommand cmd = new SqlCommand(command, myConnect);

    myConnect.Open();

    SqlDataReader reader = cmd.ExecuteReader();

    GridView1.DataSource = reader;
    GridView1.DataBind();
    reader.Close();
    myConnect.Close();

請指教!

由於已在FROM子句中指定,因此需要在WHERE條件中刪除“ from OrderItem”。

SELECT
    i.ProductID,
    p.Name,
    i.TotalQty,
    p.UnitPrice,
    i.TotalPrice 
FROM 
    OrderItem i
        INNER JOIN Product p
            ON i.ProductID = p.ProductID 
WHERE
    i.OrderDate = (SELECT MAX(OrderDate) 
                   FROM OrderItem 
                   WHERE OrderItem.ProductID = i.ProductID)
SELECT o.ProductID, p.Name, o.TotalQty, p.UnitPrice, o.TotalPrice 
FROM OrderItem AS o
INNER JOIN Product AS p ON o.ProductID = p.ProductID
ORDER BY o.OrderDate DESC
LIMIT 1

啊,您正在使用SQL服務器,請嘗試以下操作:(但未經測試)

SELECT TOP 1 o.ProductID, p.Name, o.TotalQty, p.UnitPrice, o.TotalPrice 
FROM OrderItem AS o
INNER JOIN Product AS p ON o.ProductID = p.ProductID
ORDER BY o.OrderDate DESC

這取決於訂購日期的數據類型。 您可能需要更改變量的數據類型或應用截斷。

declare @MaxOrderDate datetime
select @MaxOrderDate = MAX(OrderItem.OrderDate) from OrderItem

Select
    OrderItem.ProductID,
    Product.Name,
    OrderItem.TotalQty,
    Product.UnitPrice,
    OrderItem.TotalPrice 
FROM 
    OrderItem 
        INNER JOIN Product 
            ON OrderItem.ProductID=Product.ProductID 
WHERE
    OrderItem.OrderDate = @MaxOrderDate

您應該在WHERE子句中更改子查詢。

SELECT OrderItem.ProductID, Product.Name, OrderItem.TotalQty, Product.UnitPrice, OrderItem.TotalPrice 
FROM OrderItem 
INNER JOIN Product ON OrderItem.ProductID=Product.ProductID 
WHERE OrderDate = ( SELECT MAX(OrderDate) FROM OrderItem );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM