我有一份報告,可以從我的MFG軟件創建零件清單。該部分號碼列表目前看起來是這樣的:字母數字排序SSRS
DA100-12
DA100-121
DA100-122
DA100-13
DA100-131
我希望他們進行排序考慮到在年底這樣的數字部分:
DA100-12
DA100-13
DA100-121
DA100-122
DA100-131
有沒有人對如何內做到這一點建議一份報告?
我有一份報告,可以從我的MFG軟件創建零件清單。該部分號碼列表目前看起來是這樣的:字母數字排序SSRS
DA100-12
DA100-121
DA100-122
DA100-13
DA100-131
我希望他們進行排序考慮到在年底這樣的數字部分:
DA100-12
DA100-13
DA100-121
DA100-122
DA100-131
有沒有人對如何內做到這一點建議一份報告?
您可以在-
處拆分,然後按數字最後一部分進行排序。一個解決辦法是做到這一點的基礎數據庫查詢已經,也許是這樣的:
SELECT PartNo, SUBSTR(PartNo, 1, CHARINDEX('-', PartNo)) AS PN, CONVERT(INT, SUBSTR(PartNo, CHARINDEX('-', PartNo) + 1, LEN(PartNo))) AS NumPart
您可能需要tweek的SUBSTR
指數了一下,我實際上並不能現在就試試這種權利。然後按PN和NumPart進行SSRS排序。查詢的結果應該是這個樣子:
PartNo PN NumPart
---------------------------
DA100-12 DA100 12
DA100-121 DA100 121
DA100-122 DA100 122
DA100-13 DA100 13
DA100-131 DA100 131
我敢肯定,你也可以做分裂在SSRS本身也是如此,在排序表達式。
如果沒有'。',你也可以利用T-SQL函數PARSENAME做這個。你的數據中的字符以及是否總是有一個' - '分隔這些部分。 (最終,你可能會關閉重新設計的東西,因此部分名稱的兩個部分是在單獨的列更好。)
select * from Parts
order by
PARSENAME(REPLACE(PartName,'-','.'),2),
CAST(PARSENAME(REPLACE(PartName,'-','.'),1) AS INT)
這實際上並不一致。我有很多格式的部件。有些是1234,1234-1234,AB123-123,AB123-123X等 – d90
那麼,在那種情況下它將很難做到...... –