データベースにクエリを行い、32485 ProjectNumber
を共有するすべての列を取得しています。
それぞれChangeDateTime
を最大でorderId
にする必要があります。最大日付値を持つすべてのレコードを条件と一致する選択と並行して取得する
データベーステーブル:
OrderID ProjectNumber ChangeDateTime
---------------------------------------------
1 32485 30/11/2018
1 32485 29/11/2018
1 32485 28/11/2018
2 32485 30/09/2017
2 32485 29/09/2017
2 32485 28/09/2017
Desierd結果:私がこれまで試してみました(しかし、私はそれが唯一最大ChangeDateTimeで1つのレコードを返し驚いていないよ何
OrderID ProjectNumber ChangeDateTime
---------------------------------------------
1 32485 30/11/2018
2 32485 30/09/2017
):
SELECT TOP 1
Orders.OrderID,
Changes.ChangeDateTime,
Orders.ProjectNumber
FROM Orders
INNER JOIN Changes ON Changes.ItemID = Orders.OrderID
INNER JOIN LineStatusSettings ON
Cast(LineStatusSettings.LineStatusSettingID as varchar(max)) = Changes.NewValue
INNER JOIN LineStatuses ON LineStatuses.LineStatusID= LineStatusSettings.LineStatusID
INNER JOIN OrderTypes ON OrderTypes.OrderTypeID = LineStatusSettings.OrderTypeID
WHERE Orders.ProjectNumber = 32485 AND Orders.Deleted=0
GROUP BY Orders.OrderID,
Changes.ChangeDateTime,
Orders.ProjectNumber
ORDER BY Changes.ChangeDateTime DESC
左揃えのSQLは読みにくいです。 – jarlh
8つの列を選択しますが、3つだけが返されます。奇妙な。 – jarlh