【发布时间】:2015-09-11 22:46:54
【问题描述】:
我无法过滤掉重复的列值。
到目前为止,这是我的结果:
ProjectNumber, WorkOrder, Shipment, Start, End, Quantity, PartName
------------------------------------------------------------------
1234 | 1234-01 | S-01 | 2015-09-01 00:00:01 | 2015-09-01 00:00:01 | 200 | Part A
1234 | 1234-02 | S-01 | 2015-09-01 00:00:01 | 2015-09-01 00:00:01 | 200 | Part B
1234 | 1234-03 | S-01 | 2015-09-01 00:00:01 | 2015-09-01 00:00:01 | 200 | Part C
2345 | 2345-01 | S-01 | 2015-09-02 00:00:01 | 2015-09-02 00:00:01 | 12 | Part A
2345 | 2345-02 | S-01 | 2015-09-02 00:00:01 | 2015-09-02 00:00:01 | 24 | Part B
我知道我需要按 ProjectNumber 和第一个 WorkOrder 的数据进行分组,如果这有意义的话。所以想要的结果是:
ProjectNumber, WorkOrder, Shipment, Start, End, Quantity, PartName
------------------------------------------------------------------
1234 | 1234-01 | S-01 | 2015-09-01 00:00:01 | 2015-09-01 00:00:01 | 200 | Part A
2345 | 2345-01 | S-01 | 2015-09-02 00:00:01 | 2015-09-02 00:00:01 | 12 | Part A
到目前为止我尝试过的,没有骰子。
SELECT
ProjectNumber, ProductionNotes AS Shipment, PromiseDate AS "End", Notes,
MIN(WorkOrderNumber) AS "Work Order", Name AS "Sales Order", PromiseDate,
Quantity, PartName
FROM Database.dbo.daWorkOrders
WHERE StatusTypeID = 3
GROUP BY ProjectNumber
ORDER BY PromiseDate ASC;
回复:
列“Database.dbo.daWorkOrders.ProductionNotes”在 选择列表,因为它不包含在任一聚合中 函数或 GROUP BY 子句。
可以这样做吗?
【问题讨论】:
标签: sql-server-2008