У меня возникли проблемы с установкой данных в таблицу в определенном порядке из другого table.I хотите заказать данные по колонке Niveau
Вставка into..Select с заказом по
Мой запрос как:
IF OBJECT_ID('tempdb..#DISPLAYVALUEALL') IS NOT NULL
DROP TABLE #DISPLAYVALUEALL
SELECT
Ecritures.RecIdLine AS RecIdLine,
Ecritures.DISPLAYVALUEComb AS DISPLAYVALUEComb,
LevelTable.DIMENSIONATTRIBUTE AS DimAttribute,
LevelTable.LEVEL_ AS Niveau,
DimAttr.Name AS Dim_Label
INTO
#DISPLAYVALUEALL
FROM
#BudgetTransTmp As Ecritures
INNER JOIN
#InterfacesParmTmp AS Tmp1 ON Tmp1.DATAAREAID = Ecritures.DATAAREAID
INNER JOIN
MicrosoftDynamicsAx.dbo.DIMENSIONHIERARCHYLEVEL As LevelTable ON LevelTable.DIMENSIONHIERARCHY = Ecritures.ACCOUNTSTRUCTURE
AND LevelTable.PARTITION = @Partition
AND LevelTable.DIMENSIONATTRIBUTE IN (Tmp1.TaskCode, Tmp1.Activity, Tmp1.BudgetNature, Tmp1.CentreCout)
INNER JOIN
MicrosoftDynamicsAx.dbo.DIMENSIONATTRIBUTE As DimAttr ON DimAttr.RECID = LevelTable.DIMENSIONATTRIBUTE
AND DimAttr.PARTITION = @Partition
ORDER BY
RecIdLine,DISPLAYVALUEComb , Niveau ASC, DimAttribute DESC
--SELECT * from #DISPLAYVALUEALL
Это не работает. Нельзя ли использовать заказ в инструкции select?
Это мой результат
ReciID DisplayValue Dimension Niveau
5637157342 601200-001-026-- 22565421189 5
5637157342 601200-001-026-- 22565421195 2
5637157342 601200-001-026-- 22565421196 3
5637157342 601200-001-026-- 22565421197 4
5637157326 601200-001-027-- 22565421189 5
5637157326 601200-001-027-- 22565421195 2
5637157326 601200-001-027-- 22565421196 3
5637157326 601200-001-027-- 22565421197 4
Спасибо!
Update: мое решение, добавив следующую строку:
Row_number() over(ORDER BY Ecritures.RecIdLine, Ecritures.DISPLAYVALUEComb, LevelTable.LEVEL_ ASC, LevelTable.DIMENSIONATTRIBUTE DESC) as RowNumber,
И мой сценарий становится:
IF OBJECT_ID('tempdb..#DISPLAYVALUEALL') IS NOT NULL
DROP TABLE #DISPLAYVALUEALL
SELECT Row_number() over(ORDER BY Ecritures.RecIdLine ,Ecritures.DISPLAYVALUEComb , LevelTable.LEVEL_ asc, LevelTable.DIMENSIONATTRIBUTE desc) as RowNumber,
Ecritures.RecIdLine AS RecIdLine,
Ecritures.DISPLAYVALUEComb AS DISPLAYVALUEComb,
LevelTable.DIMENSIONATTRIBUTE AS DimAttribute,
LevelTable.LEVEL_ AS Niveau,
DimAttr.Name AS Dim_Label
INTO #DISPLAYVALUEALL
FROM #BudgetTransTmp As Ecritures
INNER JOIN #InterfacesParmTmp AS Tmp1
ON Tmp1.DATAAREAID = Ecritures.DATAAREAID
INNER JOIN MicrosoftDynamicsAx.dbo.DIMENSIONHIERARCHYLEVEL As LevelTable
ON LevelTable.DIMENSIONHIERARCHY = Ecritures.ACCOUNTSTRUCTURE
AND LevelTable.PARTITION = @Partition
AND LevelTable.DIMENSIONATTRIBUTE IN (Tmp1.TaskCode,Tmp1.Activity, Tmp1.BudgetNature, Tmp1.CentreCout)
INNER JOIN MicrosoftDynamicsAx.dbo.DIMENSIONATTRIBUTE As DimAttr
ON DimAttr.RECID = LevelTable.DIMENSIONATTRIBUTE
AND DimAttr.PARTITION = @Partition
ORDER BY RowNumber
Теперь данные упорядочены в таблице проверяю по:
SELECT * from #DISPLAYVALUEALL
Строки не логически упорядочены в таблице. Если вы хотите, чтобы ваш последний 'SELECT' отображал данные в определенном порядке, * это *, где вы должны добавить предложение' ORDER BY'. –
Почему вы хотите заказать свои данные перед вставкой? –
Потому что мне нужен этот орден во второй таблице. я нашел somthing проверить мое обновление – stoner