Sql 最近4家供应商的库存项目详细信息

Sql 最近4家供应商的库存项目详细信息,sql,sql-server,Sql,Sql Server,我正在尝试获取最近4家供应商的库存详细信息,包括日期、最后价格等。下面是SQL正在尝试但未获得结果 SELECT S.Number, S.Description, S.BrandDescription, PL.ID, S.CatalogueDescription, S.InventoryUnitOfMeasure, S.TenderPrice, S.LastTenderedVendorId, S.Notes --, vendorNumber,

我正在尝试获取最近4家供应商的库存详细信息,包括日期、最后价格等。下面是SQL正在尝试但未获得结果

SELECT S.Number, S.Description, S.BrandDescription, PL.ID, S.CatalogueDescription, S.InventoryUnitOfMeasure,  
                         S.TenderPrice, S.LastTenderedVendorId, S.Notes --, vendorNumber, VendorName, LastTransactionDate, po.OrderDate
FROM Stocks.Stock S LEFT OUTER JOIN Purchasing.PurchaseOrderLineItem PL on s.id = pl.StockId
                    inner join Purchasing.PurchaseOrder po on po.Id = pl.PurchaseOrderId
                    left join 
                    (select vendorNumber, VendorName, POLID, LastTransactionDate from
                        (
                        SELECT top 4 v.Number vendorNumber, v.Name VendorName, PLL.Id POLID, max(por.TransactionDate) as LastTransactionDate,
                        ROW_NUMBER() OVER(PARTITION BY v.Number ORDER BY max(por.TransactionDate) DESC) AS rk
                        FROM Purchasing.PurchaseOrderLineItem PLL 
                        inner join Purchasing.PurchaseOrder po on PLL.PurchaseOrderId = po.Id
                        inner join Purchasing.PurchaseOrderVendor POV on po.Id = POV.PurchaseOrderId
                        inner join Purchasing.Vendor V on pov.VendorId =  v.Id
                        left outer join Purchasing.PurchaseOrderReceipt POR on PLL.Id = por.PurchaseOrderLineItemId
                        group by v.Number, v.Name,PLL.Id
                        order by LastTransactionDate desc
                        ) A
                        where a.rk = 1) B on PL.Id = b.POLID

我需要最多4个最后的供应商,所以想要4行与供应商的详细信息每个股票。将在报告中进行分组。LINQ查询也可以工作。

从您的语句中,不清楚哪个表是主表,哪个表用于详细信息,但下面是您尝试执行的模板。您可以使用外部应用程序:

Select * from master m
outer apply (select top 4 * From Details d where m.Id = d.Id order by someColumns desc)o

您能创建一个提琴吗?库存-->PurchaseOrderLineItem-->PurchaseOrder-->PurchaseOrderVendor-->供应商库存是主表,过去可能有许多供应商用于同一产品。我们需要4个最近的最后4个不同的供应商与价格和最后购买日期。我认为你需要应用外部应用,而不是左加入作为乔治的代码@卡齐法汗