Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL查询中使用DISTINCT_Sql_Sql Server_Distinct - Fatal编程技术网

在SQL查询中使用DISTINCT

在SQL查询中使用DISTINCT,sql,sql-server,distinct,Sql,Sql Server,Distinct,如何在SQL查询中使用DISTINCT命令来显示供应商id、公司名称以及在特定日期之前从该供应商订购的不同产品的数量?我在Access中运行了代码,但它不能有效地转换为SQL。此时将显示该表 [Supplier ID Company Name Product Name Order Date 1 Exotic Liquids Chang 17-Aug-94 1 Exotic Liquids Chang

如何在SQL查询中使用DISTINCT命令来显示供应商id、公司名称以及在特定日期之前从该供应商订购的不同产品的数量?我在Access中运行了代码,但它不能有效地转换为SQL。此时将显示该表

[Supplier ID    Company Name    Product Name    Order Date
1           Exotic Liquids  Chang           17-Aug-94
1           Exotic Liquids  Chang           22-Nov-94
1           Exotic Liquids  Aniseed Syrup   26-Sep-94]
到目前为止,我的代码如下。我感到困惑的是,该把这个独特的陈述放在哪里。它是否应该紧跟在Select之后?除了SELECT之外,它还应该放在括号中吗?请原谅我事先对这个问题缺乏知识

SELECT       Suppliers.SupplierID, Customers.CompanyName, Products.ProductName,    
             Orders.OrderDate

FROM         Suppliers INNER JOIN
             Products ON Suppliers.SupplierID = Products.SupplierID CROSS JOIN
             Customers INNER JOIN
             Orders ON Customers.CustomerID = Orders.CustomerID

WHERE Orders.OrderDate <='1/1/1999'
ORDER BY     Suppliers.SupplierID
选择Suppliers.SupplierID、Customers.CompanyName、Products.ProductName、,
Orders.OrderDate
从供应商内部加入
供应商上的产品.SupplierID=产品.SupplierID交叉连接
客户内部连接
Customers.CustomerID=Orders.CustomerID

WHERE Orders.OrderDate我很确定是这样的:

SELECT       DISTINCT(Suppliers.SupplierID), Customers.CompanyName, Products.ProductName,Orders.OrderDate

FROM         Suppliers INNER JOIN
             Products ON Suppliers.SupplierID = Products.SupplierID CROSS JOIN
             Customers INNER JOIN
             Orders ON Customers.CustomerID = Orders.CustomerID

WHERE Orders.OrderDate <='1/1/1999'
ORDER BY     Suppliers.SupplierID
选择不同的(Suppliers.SupplierID)、Customers.CompanyName、Products.ProductName、Orders.OrderDate
从供应商内部加入
供应商上的产品.SupplierID=产品.SupplierID交叉连接
客户内部连接
Customers.CustomerID=Orders.CustomerID

其中Orders.OrderDate您可以通过选择的所有列进行区分:

SELECT DISTINCT 
    Suppliers.SupplierID, Customers.CompanyName, Products.ProductName,    
    Orders.OrderDate
FROM         
    Suppliers INNER JOIN
    Products ON Suppliers.SupplierID = Products.SupplierID CROSS JOIN
    Customers INNER JOIN
    Orders ON Customers.CustomerID = Orders.CustomerID
WHERE 
    Orders.OrderDate <='1/1/1999'
ORDER BY     
    Suppliers.SupplierID
选择DISTINCT
Suppliers.SupplierID、Customers.CompanyName、Products.ProductName、,
Orders.OrderDate
从…起
供应商内部联接
供应商上的产品.SupplierID=产品.SupplierID交叉连接
客户内部连接
Customers.CustomerID=Orders.CustomerID
哪里

Orders.OrderDate如果您实际上想要“不同产品的数量”,那么distinct关键字对您帮助不大。相反,你需要计算按供应商和订单日期分组的订单中的记录。很好的资源引用。在某种程度上被引导到相信这是一个问题的要求,然而在参考文献中,结果和数据的准确性更为重要。更谨慎的做法是学习编译和返回正确数据的正确语法和代码。