私はEコマースの店頭用データベースを持つMS SQL Serverを持っています。SQLは列を列にし、PIVOTはおそらく
これは私が持っているテーブルの一部である:
Products:
Id | Name | Price
ProductAttributeTypes: -Color, Size, Format
Id | Name
ProductAttributes: --Red, Green, 12x20 cm, Mirrored
Id | ProductAttributeTypeId | Name
Orders:
Id | DateCreated
OrderItems:
Id | OrderId | ProductId
OrderItemsToProductAttributes: --Relates an OrderItem to its product and selected attributes
OrderItemId | ProductAttributeId | ProductAttributeTypeId | ProductId
私が購入されたアイテムを参照するために、のOrderItems表から選択します。
どのようなバリアント(ProductAtriibutes)が選択されたかを確認するには、それらを結果セットの「動的」列として使用します。
だから、結果セットは次のようになります。
OrderItemId | ProductId | ProductName | Color | Size | Format
1234 123 Mount. Bike Red 2x20 Mirror
PIVOTを使用するためのものである場合、私は知らないのですか?私は集計関数を使用していないので、私はそう思わない...
私を助けることができるSQL Ninjasはありますか?
どのように?集計関数を使用していないときは?私はIDなどを要約したくありません。 – MartinHN
私はこれがとても近いと思っていますが、ColorカラムとSizeカラムの両方の値はnullです。たぶん小さなディテールが欠落しているのでしょうか? – MartinHN
これは、OrderItemsToProductAttributesという表にProductAttributeTypeIdがあり、これをサンプルb/cに入れなかったことです。これは結合(第3の通常のフォームとすべて)を介して参照する必要があります。 SELECT AttrPivot.OrderItemId、 isnull([Size]、 'NA')AS [Size]、 isnull([Color]、 'NA)この例では、 ')ASカラー FROM OrderAttributes – JBrooks