問題タブ [pivot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1442 参照

sql-server - これに SQL ピボットを使用するにはどうすればよいですか?

次のように編成されたデータセットがあります。

A0001 は項目 #1 の値 A、B0001 は項目 #1 の値 B です。テーブルには 60 を超えるさまざまなアイテムが存在する可能性があり、各アイテムには A 値の列と B 値の列があり、テーブルには合計 120 を超える列があります。

取得したいのは、各アイテムの A 値と B 値を合計する 3 列の結果 (アイテム インデックス、A 値、B 値) です。

列から行に移動するときに、ソリューションにピボットが期待されますが、具体化する方法がわかりません。問題の一部は、A と B を取り除いて Index 列の値を形成する方法です。もう 1 つの部分は、これまで Pivot を使用する必要がなかったということです。そのため、基本的な構文についてもつまずいています。

最終的には、最初に合計を次のように構築するマルチステップソリューションが必要だと思います。

次に、ColName データを変更してインデックスを削除します。

最後に、自己結合して B 値を A 値の隣に移動します。

これは、私が望むものを手に入れるための長いプロセスのようです。ですから、私が正しい道を進んでいるかどうか、または私の人生をずっと楽にしてくれる別のアプローチが見過ごされているかどうかについてアドバイスを求めています.

注 1) ソリューションは、MSSQL 2005 上の T-SQL にある必要があります。

注2)テーブルのフォーマットは変更できません。

編集私が考えた別の方法は、各列で UNION と個々の SUM() を使用します。

しかし、このアプローチも実際にはあまり見栄えがよくありません

編集 これまでのところ、2つの素晴らしい回答があります。しかし、クエリにさらに 2 つの条件を追加したいと思います :-)

1) タイムスタンプの範囲 (minv < timestamp < maxv) に基づいて行を選択する必要があります。

2) タイムスタンプを処理する UDF の行を条件付きで選択する必要もあります

Brettski のテーブル名を使用すると、上記は次のように変換されます。

条件付きで fn() 要件を追加したことを考えると、Jonathon によって提案された動的 SQL パスをたどる必要があると思います。特に、12 の異なるテーブル (すべて同じスタイル) に対して同じクエリを作成する必要があるためです。

0 投票する
6 に答える
2313 参照

asp.net - データグリッドと SQL クエリの入力

以下に示すデータベースに3つのテーブルがあります。そして、以下のリンクのようにレポートを作成したいと思います。データグリッドまたはデータリストでどうすればよいですか? 最高のチョイスはどれ?1週間やってみました。

http://img123.imageshack.us/my.php?image=61519307xx5.jpg

COMPANY : ID_COMPANY、COMPANY_NAME

PRODUCT : ID_PRODUCT、PRODUCT_NAME

PRODUCT_SALE : ID_COMPANY、ID_PRODUCT、SALE_COUNT

更新日:

あなたの助けがあれば、私はそれを行うことができました。しかし今、私にも小さな問題があります。

ピボットでクエリを書くと、商品名がカラムヘッダーになります。製品名の長さが 30 文字を超える場合、Oracle はそれを列ヘッダーとして受け入れません。そのため、この問題を解決するために、製品名を 30 文字にトリミングして作成しました。その後、問題も発生しました。

製品名を 30 文字で切り抜くと、一部の製品が同じ名前になり、「ORA-00918: 列があいまいに定義されています」というエラー メッセージが表示されました。

この場合、何ができるでしょうか?

0 投票する
3 に答える
11154 参照

sql - MS Access 2007 または MS SQL Server 2005 で SQL を使用してフィールドを行に変換する方法

過去の売上データを表す 52 個のフィールド (その年の各週に 1 つのフィールド) (および実際にはその年の 1 つのフィールド) を含む従来の MS Access 2007 テーブルがあります。このデータベースをより従来型の時間/値リストに変換したいと考えています。

52以上の明示的なパラメータでクエリを書かずにそれを行う方法を知っている人はいますか?

(MS SQL Server 2005 にソリューションが存在する場合は、テーブルをエクスポート/インポートすることもできます)

0 投票する
2 に答える
2861 参照

c# - 別の LINQ ピボットの問題 - SQL スクリプトを LINQ に変換する

SO には LINQ ピボットに関するいくつかの質問が既にあり、そのうちのいくつかは正確な問題の概要を説明していますが、それらを実際のソリューションにうまく変換することはできません。これは主にテーブルの結合によるものだと思います。

そこで、問題が大好きなすべての LINQ ジャンキーのために、解決すべき別のパズルを紹介します。次の SQL ストアド プロシージャ スクリプトを LINQ に変換して、私を助けてください (そして、いくつかの評判ポイントと私からの尊敬を獲得してください)。

0 投票する
4 に答える
10308 参照

sql - Oracle でのピボット テーブルの使用に関するアドバイス

レポートが必要なので、ピボット テーブルを使用する必要があります。レポートはカテゴリ別にグループ化されます。カテゴリが多いため、case when ステートメントを使用するのは適切ではありません。Northwind データベースをサンプルと考えることができ、すべてのカテゴリが列として表示されます。レポートには、カテゴリ間の顧客の好みが表示されます。私は別の解決策を知りません。Sql Server のインターネットのストアド プロシージャの例を見ました。

ありがとう

0 投票する
1 に答える
3355 参照

sql - 値を含む nn テーブルとのクロス結合 (ピボット)

私は3つのテーブルを持っています:

MyValue の行は、実際の値が提供された場合にのみ作成されます。

次のように、結果を表形式で表示したい:

クロス結合を正常に作成しました:

または、 linq で:

そして、linq でピボットを作成する方法を見ました ( hereまたはhere ) :

( MyDatas が前のクエリの結果を含むビューであると仮定します) :

しかし、可能であれば、Month1、... プロパティを動的に使用して結果セットを作成する方法を見つけたいと考えています。

注:n + 1クエリになるソリューション:

0 投票する
4 に答える
1390 参照

sql - SQL Server 2005 でデータをピボットする方法

私は次のデータを持っています

代替テキスト

(SQL Server 2005 で) 次の形式に変換するにはどうすればよいですか?

代替テキスト

私が思いついた解決策の例がありますが、少しぎこちないようです。もしかして臭い?

興味深いことに、各 LANG_* 列に表示される特定の言語は気にしません。ここに投稿された他の質問はすべて、ピボットされた列を名前で知ることに言及しているようです。しかし、見つかった言語で列に名前を付けたくありません。

:「ピボット」という言葉に言及していることは知っていますが、この問題の最善の解決策には PIVOT 句が含まれない場合があります。私の質問がデータのピボットを示唆しているように見えたので、私はその言葉を使用しました。おそらくCTEが解決に役立つでしょうが、私にはわかりません。上記のソリューション例に満足していないことはわかっています。

0 投票する
5 に答える
2391 参照

sql - 単一のレコード(行)を単一の列として表示する

1行のデータを1列(複数行)として表示する方法を探しています。例えば、

SQL Server 2005でこれを行う方法はありますか?

0 投票する
2 に答える
4027 参照

sql-server - MS SQL Server 2005 でピボット変換を使用するとエラーが発生する

私はピボットしている次のテーブルを持っています:

(ID、名前、値)

1、「タスク ID」、123

1、「言語」、「Java」

2、「タスク ID」、456

PivotKey を Name 列に設定し、Pivo​​tedValue を Value 列に設定しました。新しい列 (タスク ID と言語) ごとに、Pivo​​tKeyValue をそれぞれ「タスク ID」と「言語」に設定しました。私のパッケージは上記のデータで正常に動作します。ピボット操作の結果は次のとおりです。

(ID、タスク ID、言語)

1、123、「ジャバ」

2、456、ヌル

ただし、次のソース データでパッケージを実行すると、問題が発生します。

(ID、名前、値)

1、ヌル、ヌル

2、ヌル、ヌル

私が得るエラーメッセージは次のとおりです。

[ピボット [4511]] エラー: ピボット キーの値 "(文字列に変換できません)" が無効です。[DTS.Pipeline] エラー: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。コンポーネント "Pivot" (4511) の ProcessInput メソッドがエラー コード 0xC0202090 で失敗しました。識別されたコンポーネントが ProcessInput メソッドからエラーを返しました。エラーはコンポーネントに固有のものですが、エラーは致命的であり、データ フロー タスクの実行が停止します。これより前に、障害に関する詳細情報を含むエラー メッセージが投稿される場合があります。

値を処理するように構成されていないため、ピボット操作が PivotKey 列 'Name' の NULL 値を処理できないことを意味していると思います。問題は、これを行う方法がわからないことです。出力列 (「入力および出力プロパティ」フォーム) の PivotKeyValue プロパティの NULL 値をどのように検出して処理しますか?

御時間ありがとうございます。

0 投票する
4 に答える
3769 参照

xslt - XSLT を使用してピボットを行う

次のようなxmlファイルがあります。

XSLT を使用してこれを変換し、次のようなものを取得します。

言い換えれば、それぞれにステータスを持つアイテムのリストを取得し、それをそれぞれにアイテムのリストを持つステータスのリストに変換したいと考えています。

私が最初に考えたのは、各ステータス タイプに順番に一致するテンプレートの適用を行うことでしたが、それは、ステータスの完全なリストを知る必要があることを意味します。それを行うより良い方法はありますか?

助けてくれてありがとう。