sql >> データベース >  >> RDS >> Sqlserver

複数のテーブルの行を Sql Server 2005 の値を持つ列に変換するための T-SQL ヘルプが必要

    私の最初の考えは、スキーマを改善することです。本当にこれを行う必要がありますか。

    質問を簡単にするために、mstBCE への結合に基づいて列名を設定したいようです。tblBCE の列の数は固定されているため、リレーションは必要ありません。代わりに、動的 sql を使用して、1 つの行にピボットされた mstBCE から選択する列名を設定します。

    DECLARE @sql nvarchar(4000); 
    SELECT @sql = N'SELECT u.[username], u.[department], 
    b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1], 
    b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2], 
    b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3] 
    FROM tblBCE as b 
    JOIN tblUser as u ON b.[UserID] = u.[userid]; ' 
    FROM (
        SELECT [tabconfigid], [tabdata] 
        FROM mstBCE 
        WHERE [tabType] = N'BCE'
    ) as m 
    PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt; 
    
    EXEC (@sql); 
    



    1. このセッションではcurrvalがまだ定義されていませんが、マルチセッションシーケンスを取得するにはどうすればよいですか?

    2. 合計に基づいてMySQLの十分位数を計算します

    3. MySQLの合計、group byでカウントし、参加します

    4. psycopg2ライブラリがロードされていないインポート:libssl.1.0.0.dylib