繁体   English   中英

SQL语句中的第一条记录

[英]First record in SQL statement

为此,我需要链接和其他表以按工厂过滤,从而为每个条目创建多个记录。 我希望得到一个的第一个条目。

SELECT 
    OrderHead.CreditOverride, 
    OrderHead.OpenOrder, Customer.CreditHold, 
    OrderHead.OrderNum, Customer.Name, 
    OrderHead.EntryPerson, OrderHead.OrderDate, 
    Customer.TermsCode, OrderHead.ShipToCustNum, OrderRel.Plant
FROM  
    Customer 
INNER JOIN
    OrderHead ON Customer.Company = OrderHead.Company 
             AND Customer.CustNum = OrderHead.BTCustNum 
INNER JOIN
    OrderRel ON OrderHead.OrderNum = OrderRel.OrderNum
WHERE 
    (OrderHead.CreditOverride = 0) 
    AND (OrderHead.OpenOrder = 1)  
    AND (Customer.CreditHold = 1) 
    AND (OrderRel.Plant = 'mfgsys')

试图从订单头中获取第一个唯一记录。

使用窗口功能。 您可以完全在FROM子句中完成此操作:

FROM Customer c INNER JOIN
     (SELECT oh.*,
             ROW_NUMBER() OVER (PARTITION BY Company, BTCustNum ORDER BY OrderDate ASC) as seqnum
      FROM OrderHead oh
     ) oh
     ON c.Company = oh.Company AND
        c.CustNum = oh.BTCustNum AND
        oh.seqnum = 1 INNER JOIN
     OrderRel orr
     ON oh.OrderNum = orr.OrderNum

请注意,我用更简单的表别名替换了表名,您应该在查询的其余部分中重复该表别名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM