价格表的片段
stockid typeabbrev currabrev debtorno price branchcode startdate enddate
AC100BL CL USD 0.2200 2015-07-28 0000-00-00
AC100BL DE USD 0.3500 2016-07-29 0000-00-00
AC100BL EX USD 0.3500 2016-07-29 0000-00-00
AC100BL FL USD 0.4000 2015-07-28 0000-00-00
AC100BL RT USD 0.4700 2016-07-29 0000-00-00
AC100BL SP USD 0.3100 2015-07-28 0000-00-00
AC100BL ST USD 0.2400 2015-07-28 0000-00-00
AC100BL TR USD 0.4200 2016-07-29 0000-00-00
所以,我有使用MySQL的经验,但这超出了我的范围。
您在上面看到的是我数据库中价格表的摘录。
现在每个不同的类型缩写都有一个stockid行。
我的问题是:我如何创建一个新表,其中每一行是不同的stockid,每行都有不同的typeabbrev作为每个stockid的字段。 所以新表最终会像这样:
stockid CL DE EX
AC100BL 0.2200 0.3500 0.3500
BC19BLF 0.1100 0.1300 0.1400
CC10GBL 0.3900 0.4900 0.3500
很抱歉,如果我没有解释清楚。
基本上我想将stockid作为主键,并将字段作为所有现有字段加上其他类型字体的额外字段。
提前感谢您提供给我的任何建议。
答案 0 :(得分:0)
您可以使用pivot
查询来执行此操作,例如:
SELECT s.stockid,
(SELECT price FROM table WHERE stockid = s.stockid AND typeabbrev = 'CL') AS 'CL',
(SELECT price FROM table WHERE stockid = s.stockid AND typeabbrev = 'DE') AS 'DE',
(SELECT price FROM table WHERE stockid = s.stockid AND typeabbrev = 'FX') AS 'FX'
FROM table;