这是我下面的代码,它显示了不正确的语法.任何想法为什么要做什么


select 
    'WO-' + OrderNo + 'LN-' + convert(nvarchar(10), OrderLine) + 'BN-' + convert(nvarchar(10),
    ROW_NUMBER() OVER (PARTITION BY OrderNo ORDER BY id, OrderNo))  as orderno,                 
    distinct PartNo, opno, Quantity, 
    requiredPartno, requiredquantity, level
from 
    VW_batching 

我认为问题与"不同"仅如评论中提到的某些

让我简短地解释你,

我有一张名为'tblBilling'

的表

当我执行" SELECT * FROM tblBilling"时,输出为: -

EngID   Tower   Billing Amt
100      ICS    Y   5000
100      EDT    Y   7777
100      ICS    N   2000

现在,当我使用" SELECT DISTINCT EngID , Tower FROM tblBilling"输出时: - 是: -

EngID   Tower
100     EDT
100     ICS

但是当我使用" SELECT Tower,Distinct EngID FROM tblBilling"时,它向我显示了一个错误: -

Incorrect syntax near the keyword 'Distinct'.

因此,当我们在Select语句中有多个列时,首先写下不同的列,然后将其余写。尝试以下操作: -

select distinct PartNo,'WO-'+ OrderNo + 'LN-'+ 
convert(nvarchar(10),OrderLine) + 'BN-'+ convert(nvarchar(10),
ROW_NUMBER() OVER (PARTITION BY OrderNo ORDER BY id, OrderNo))  as orderno,                 
 opno, Quantity, requiredPartno, requiredquantity, level
from VW_batching 

我对此不完全确定,但是我认为这是T-SQL非案例敏感性的问题。

您使用的是OrderNo作为列,并将名为orderno的Allias分配给另一列。

尝试类似:

select 'WO-'+ OrderNo + 'LN-'+ 
convert(nvarchar(10),OrderLine) + 'BN-'+ convert(nvarchar(10),
ROW_NUMBER() OVER (PARTITION BY OrderNo ORDER BY id, OrderNo))  as  dispatchNo,                 
distinct PartNo, opno, Quantity, requiredPartno, requiredquantity, level
from VW_batching 

最新更新