这是图片究竟是什么问题。 我想通过订单和文章将overed_qty合并为一行,这就是我的困惑。
-- Insert statements for procedure here
SELECT table_PrintJob.order_name, table_PrintJob.article_name, table_Orders.qty AS order_qty,
(CASE WHEN COUNT(*) OVER (PARTITION BY table_PrintJob.order_name,table_PrintJob.article_name) > 1
THEN SUM(table_PrintJob.qty * table_PrintJob.qty_operation) - MIN(SUM(table_PrintJob.qty * table_PrintJob.qty_operation))
OVER (PARTITION BY table_PrintJob.order_name, table_PrintJob.article_name)
ELSE SUM(table_PrintJob.qty * table_PrintJob.qty_operation) END) AS overed_pieces,
SUM(table_PrintJob.repaired) AS repaired_qty
FROM table_PrintJob
INNER JOIN table_Orders On table_PrintJob.order_name = table_Orders.name
WHERE table_PrintJob.date_time BETWEEN @start_time AND @end_time
GROUP BY table_PrintJob.order_name,
table_PrintJob.article_name,
table_Orders.qty,
table_PrintJob.operation
ORDER BY table_PrintJob.order_name
答案 0 :(得分:0)
所以我找到了解决方案:
SELECT * INTO #tmpTable
FROM (
-- Insert statements for procedure here
SELECT table_PrintJob.order_name, table_PrintJob.article_name, table_Orders.qty AS order_qty,
(CASE WHEN COUNT(*) OVER (PARTITION BY table_PrintJob.order_name,table_PrintJob.article_name) > 1
THEN SUM(table_PrintJob.qty * table_PrintJob.qty_operation) - MIN(SUM(table_PrintJob.qty * table_PrintJob.qty_operation))
OVER (PARTITION BY table_PrintJob.order_name, table_PrintJob.article_name)
ELSE SUM(table_PrintJob.qty * table_PrintJob.qty_operation) END) AS overed_pieces,
SUM(table_PrintJob.repaired) AS repaired_qty
--INTO v_tx
FROM table_PrintJob
INNER JOIN table_Orders On table_PrintJob.order_name = table_Orders.name
WHERE table_PrintJob.date_time BETWEEN @start_time AND @end_time
GROUP BY table_PrintJob.order_name,
table_PrintJob.article_name,
table_Orders.qty,
table_PrintJob.operation
--ORDER BY table_PrintJob.order_name
) AS x
select order_name,
article_name,
order_qty,
sum(#tmpTable.overed_pieces),
sum(#tmpTable.repaired_qty)
from #tmpTable
--INNER JOIN table_Orders On v_tx.order_name = table_Orders.name
group by order_name,
article_name,
#tmpTable.order_qty