2015-01-09 61 views
1

我有3个数据库(下面分别列出了实际查询),我已将工会查询在一起。我试图在3个基础上获得最低的成本。 一个常见的是MFG零件号,所以我想这样做以及所有3个供应商的最低价格。 我创建了一个联合查询,看起来像这样:仅使用零件号和成本显示各种数据库上物品的最低成本

SELECT INGRAM.[MFG NAME], INGRAM.[MFG PART NO], INGRAM.[DESCRIPT 1] AS DESCRIPTION, INGRAM.Cost, INGRAM.MLP AS [LIST PRICE], INGRAM.[INGRAM PARTNO] AS [VENDOR SKU], INGRAM.LGTH AS COO 
FROM INGRAM 

UNION ALL 

SELECT [SYNNEX CURRENT].[MFG NAME], [SYNNEX CURRENT].[MFG PART NO], [SYNNEX CURRENT].[Part Description] AS DESCRIPTION, [SYNNEX CURRENT].Cost, [SYNNEX CURRENT].MSRP AS [LIST PRICE], [SYNNEX CURRENT].[SYNNEX SKU] AS [VENDOR SKU], [SYNNEX CURRENT].[Country of Origin] AS COO 
FROM [SYNNEX CURRENT] 

UNION ALL 

SELECT [Digitek Product Catalog].Manufacturer AS [MFG NAME], [Digitek Product Catalog].[Part No] AS [MFG PART NO], [Digitek Product Catalog].Description AS DESCRIPTION, [Digitek Product Catalog].[Unit Price] AS Cost, [Digitek Product Catalog].[List Price], [Digitek Product Catalog].[Part No] AS [VENDOR SKU], [Digitek Product Catalog].[Country Of Origin] AS COO 
FROM [Digitek Product Catalog] 
ORDER BY [MFG PART NO]; 

这结合了所有的目录为一体。

然后我运行另一个查询来尝试获取成本列中的最小值,但是由于MFG NAME列包含同一制造商的不同名称(取决于供应商)以及供应商SKU也不同。

我想要一个显示我所有信息的结果,但只返回同一个MFG PART NO中的最佳成本。

回答

0

您可以使用顶级1查询来完成此操作。

Select TOP 1 * FROM <yourunionquery> ORDER BY Cost 

如果有多个价格相同,您将获得多行。在这种情况下,只需在排序中添加另一个字段。例如。 ORDER BY成本,[MFG名称]