2015-10-06 32 views
0

我試圖獲取「MenuItem.MenuID」的最後一個ID,因爲它是該類型的最新版本,在說有多個Menu。每個市場的名稱。如何使用該菜單中的所有項目獲得每個菜單每個菜單的最新ID?SQL Query根據另一個字段的值返回最後一個ID

SELECT 
    MenuItem.MenuId, Menu.Name, MenuItem.ProductId, Product.Name, 
    MenuItem.Count,Menu.MenuTypeId, MenuType.MarketId, Available, 
    StandardItem, UnitsPerPackage, ItemWeighting, Product.Disabled, ExtraItem 
FROM MenuItem 
JOIN Menu 
    ON MenuItem.MenuId = Menu.Id 
JOIN ProducT 
    ON MenuItem.ProductId = Product.Id 
JOIN MenuType 
    ON MenuType.Id = MENU.MenuTypeId 
WHERE MenuType.Disabled = 0 
    AND product.Disabled = 0 
    AND MENU.NAME = 'a generic menu' 
    AND MenuType.MarketId = 1 
ORDER BY 
    MarketId, 
    MENU.ID, 
    MenuTypeId; 
+0

什麼數據庫您使用比如說SQL Server或Oracle或MySQL? – Roger

+0

SQL Server 2005 – user3618691

回答

0
SELECT TOP 1 
    MenuItem.MenuId, Menu.Name, MenuItem.ProductId, Product.Name, 
    MenuItem.Count,Menu.MenuTypeId, MenuType.MarketId, Available, 
    StandardItem, UnitsPerPackage, ItemWeighting, Product.Disabled, ExtraItem 
FROM 
    MenuItem 
    INNER JOIN Menu ON MenuItem.MenuId = Menu.Id 
    INNER JOIN ProducT ON MenuItem.ProductId = Product.Id 
    INNER JOIN MenuType ON MenuType.Id = MENU.MenuTypeId 
WHERE 
    MenuType.Disabled=0 AND product.Disabled=0 
    AND MENU.NAME = 'a generic menu' AND MenuType.MarketId=1 
ORDER BY 
    MarketId, MENU.ID, MenuTypeId 

UPDATE:

,如果你想返回頂部爲每個市場你可能使用公共表表達式是這樣的:

WITH MyMenus AS 
(
    SELECT *, 
     ROW_NUMBER() OVER (PARTITION BY MenuType.MarketId ORDER BY Menu.Id, Menu.MenuTypeId) AS rowNumber 
    FROM MenuItem 
    INNER JOIN Menu ON MenuItem.MenuId = Menu.Id 
    INNER JOIN Product ON MenuItem.ProductId = Product.Id 
    INNER JOIN MenuType ON MenuType.Id = Menu.MenuTypeId 
    WHERE 
    MenuType.Disabled=0 AND product.Disabled=0 
    AND Menu.Name = 'a generic menu' 
) 
SELECT * 
FROM MyMenus 
WHERE rowNumber = 1 
+0

它只返回頂部ID,所以最後一個菜單,但每10個市場有10個菜單,每個菜單內部有8-10個項目,這僅返回第一個項目。我需要它爲該菜單返回多個菜單(並且僅返回最後一個菜單ID)。謝謝 – user3618691

+0

我需要它爲每個市場的每個菜單返回一個最高值。謝謝 – user3618691

+0

您可以生成並上傳架構的SQL腳本和一些示例數據,以便我可以複製確切的問題並嘗試解決它? – Roger

相關問題