我有销售文件和发票的表格,例如
SalesDoc | Invoice | InvoiceType ------------------------------------ Doc1 | Inv1 | A Doc1 | Inv2 | B Doc1 | Inv3 | C Doc2 | Inv1 | A Doc2 | Inv2 | C Doc3 | Inv1 | A Doc3 | Inv2 | B
每份销售凭证都可以有多个发票,例如标准发票或形式......
我需要过滤该表以接收下表
因此,如果对于Sales doc存在incoice C,则仅显示该销售文档的此行, 如果没有,则检查类型B,然后检查类型A.
SalesDoc | Invoice | InvoiceType ----------------------------------- Doc1 | Inv3 | C Doc2 | Inv2 | C Doc3 | Inv2 | B
我知道我可以在临时表中存储销售文档,然后循环(使用游标)和过滤源表来删除不必要的记录 但我想确定是否有任何其他解决方案而不是循环来实现它
由于 托梅克
答案 0 :(得分:0)
根据更大的逻辑,您可以使用聚合执行此操作:
Select SalesDoc, Max(Invoice) as Invoice, Max(InvoiceType) as InvoiceType
FROM MYSALESTABLE
GROUP BY SalesDoc