请问这样的查询如何实现?
从下表中算出数据结果来,下表表名为“交叉表结果”
货号 出货价格 20060214 20060215 20060216
1000021 0.613 6756
1000021 0.612 5912 4321
1000021 0.611 37628 2315
1000021 0.61 7928 3428
1000021 0.609 3494 9990 6790
1000021 0.608 17181 4366
1000021 0.607 9958 2066
1000021 0.606 935
1000021 0.605 859
1000021 0.601
1000022 1.3 457
1000022 1.299 887 865
1000022 1.298 1332
1000022 1.297 540 607 1756
1000022 1.296 607 1043 976
1000022 1.295 1280 2231 735
1000022 1.293 976 900
1000022 1.291 507
1000022 1.29 420
1000022 1.289
要实现的查询结果是:
货号 20060214 20060215 20060216
000021 a1 b1 c1
000022 a2 b2 c2
000023 a3 b3 c3
其中20060214列的数据我能这样算出来:
SELECT 货号, (MAX(出货价格) - MIN(出货价格)+(case left("货号",1) when 1 then 0.001 else 0.01 end)) / SUM([20060214])
AS '20060214'
FROM dbo.交叉表结果
WHERE [20060214] IS NOT NULL
GROUP BY 货号
ORDER BY 货号
现在请教各位,怎样得到一张表中能包含很多列的数据(比如象示例表一样,含有20060215、20060216、20060217·····等等)
急!
谢谢高人指点!bow!
问题点数:20、回复次数:3Top
1 楼churchatp1(别看资料,看聊效!)回复于 2006-11-03 17:39:17 得分 0
如果你的列命名是没有什么规则的,你说的是做不到的
如果你的列命名是有规则的都类似20060216这样的,那样你可以借用系统表,找到你需要的列,是可以做到你需要的效果的Top
2 楼proton0012004()回复于 2006-11-04 08:47:31 得分 0
俺是菜菜,不太清楚你所说的“借用系统表”,烦请详述之。
另,列名的命名规则是按日期来的,但不是每天都有销售数据,所以有时又会有几天是空的。Top
3 楼proton0012004()回复于 2006-11-04 10:51:43 得分 0
有否办法设计一个自定义函数来实现呢?
或者,借助临时表有没办法实现呢,请高人帮我看看。Top




