0

SQL クエリがあります。この SQL クエリでは、最初の列に関係なく個別の列を選択したいと考えています。他の SQL クエリでは、Row_number() OVER(partition BY..) を使用し、内部結合も使用する必要があります。row_number と inner join を使用したいクエリは -

DECLARE @columns NVARCHAR(MAX)

DECLARE @params NVARCHAR(MAX) = '@columns NVARCHAR(MAX) OUTPUT'

DECLARE @sql NVARCHAR(MAX) = 'SELECT @columns = STUFF(
(
    SELECT '',''+ [column_name] FROM information_schema.columns
    WHERE (table_schema = ''dbo''
          AND table_name = ''main_mps_dqs_analog'') 
          AND (ordinal_position <= 73) FOR XML PATH('''')),1,1,'''')'

EXEC sp_executesql @sql, @params, @columns OUTPUT

SET @sql = 'SELECT '+ @columns + ' FROM dbo.main_mps_dqs_analog WHERE logtime BETWEEN ''2014-10-10 07:17:00'' AND ''2014-10-10 08:47:00''' 

EXEC(@sql)

このテーブルとこのデータベース テーブルの内部結合を適用したいINDUS2_BDS.dbo.ddtableのですが、このクエリでパーティション BY を適用する方法を教えてください。beam_currentlogtimeINDUS2beam_current

4

1 に答える 1

1
SET @sql = 'SELECT ' + @columns + ' ,AnotherTable.beam_current, RowNumber() Over(Partition By SomeColumn Order By SomeColumn) AS Rn
 FROM dbo.TableName join AnotherTable on TableName.SomeColumn = AnotherTable.SomeColumn
WHERE logtime BETWEEN ''2014-10-10 07:17:00'' AND ''2014-10-10 08:47:00'''

Giorgiの助けを借りて、このSQLクエリで解決しました

于 2015-03-17T09:15:08.860 に答える