Я использую SQL Server 2012 & У меня есть две таблицы.с использованием точки, где изменяется количество столбцов
tblStocks tblFunds
fundCode nvarchar fundCode nvarchar
stockID nvarchar fundType nvarchar
shares int
Я покажу пример данных ниже, прежде чем объяснить, как его, вероятно, легче увидеть пример первой.
tblStocks
fundCode stockID shares
abcd m33 20
abcd b22 10
abcd c33 5
abcd p99 6
xyzu m33 10
xyzu b22 8
xyzu w88 12
tblFunds
fundCode fundType
abcd EQ
xyzu EQ
Так что, пожалуйста, обратите внимание, что средства в tblStocks могут иметь многочисленные акции, но каждый из них будет уникален тем, что фонд, т.е. ABCD не будет держать два M33 акции.
Также обратите внимание, что abcd и xyzu могут хранить одинаковые запасы, поэтому оба могут удерживать m33.
Ниже приводится результат, который я хотел бы видеть. Поэтому у меня есть уникальный список акций, а затем для каждого фонда у меня есть количество акций, принадлежащих этому фонду. Поэтому я знаю, что мне нужно использовать стержень здесь (ну его единственный способ, который я знаю). Однако добавленное осложнение (для меня) - это количество разных фондов, которые не всегда будут равными двум, поэтому я не знаю, как это кодировать в sql-сервере?
stockID abcd xyzu
m33 20 10
b22 10 8
c33 5 0
p99 6 0
w88 0 12
Вам нужно использовать динамический SQL, когда вы не знаете столбцы вывода. –
Возможный дубликат [SQL Server dynamic PIVOT query?] (Http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) – Kritner
Извините, что я новичок в sql. Я не понимаю, что вы подразумеваете под использование динамического SQL. Я в голове, я думал, что могу сделать отдельный запрос на tblFunds, чтобы получить список средств, а затем использовать этот список в своём стержне? – mHelpMe