200分求一sql语句,有点难度

tianch 2004-12-31 02:39:56
我有如下表:
商品名 产量
钢笔 1000
铅笔 2000
圆珠笔 1500
水性笔 2300
毛笔 500
. .
. .
. .
想用一条sql语句转换成如下数据集的形式输出:
商品名1 产量1 商品名2 产量2 商品名3 产量3
钢笔 1000 铅笔 2000 圆珠笔 1500
水性笔 2300 毛笔 500 null null

请问高手应该怎么写sql语句
...全文
281 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxysjl 2005-01-04
  • 打赏
  • 举报
回复
MARK
尚和空四 2005-01-04
  • 打赏
  • 举报
回复
不建议用SQL实现。
建议程序控制
yjb136 2005-01-04
  • 打赏
  • 举报
回复
数组不就行了,二维的,
yb2008 2005-01-04
  • 打赏
  • 举报
回复
自己要做个临时表,不过效率太低了!
潜水的鱼 2005-01-04
  • 打赏
  • 举报
回复
to: 回复人: tianch(晴空)

你的方法, 还不能实现我的需求, 我需要的是不知中文字段的情况下查询;

在"表2", 查出几条记录, 然后, 跟相应的值, 判断订单查询sum(price)的条件是全部, 还是本月;

"表1 " 是类别, 需要转成相应的字段名, “表3”是订单记录, 可用交叉查询, 查出各类价格的和, 查询的时间条件需要跟"表1"来判断
tfy_002 2005-01-04
  • 打赏
  • 举报
回复
程序实现比较好,否则sql 语名太麻烦了
yifan268 2005-01-04
  • 打赏
  • 举报
回复
studying
fishnet0950 2005-01-04
  • 打赏
  • 举报
回复
也建议用程序实现
用SQL实现效率也是个问题!
ruliushui88 2004-12-31
  • 打赏
  • 举报
回复
是不想这样显示出来? 做个循环 每行调三个次数据库! 掉完以后换行! 循环加 3 就可以拉!!! 直到结束!
dsclub 2004-12-31
  • 打赏
  • 举报
回复
做成不符合范式的?

为什么?
超级大笨狼 2004-12-31
  • 打赏
  • 举报
回复
同意三角猫
ygjwjj 2004-12-31
  • 打赏
  • 举报
回复
同意三角猫
denglei32 2004-12-31
  • 打赏
  • 举报
回复
跟输出
商品名1 产量1
钢笔 1000
水性笔 2300
不是一样的吗?只是表格长些就行了
tianch 2004-12-31
  • 打赏
  • 举报
回复
看来要实现我需要的转换,只能用存储过程了
tianch 2004-12-31
  • 打赏
  • 举报
回复
to:qiozi(【天生反对派】)
唉,我自己的没有实现,你的想到一种办法,不太完善,以下在access中验证通过,在sqlserver中需改成相应的函数名。
select "本月" as statstate,sum(iif(objectClass='武侠',price,0)) as 武侠,sum(iif(objectClass='言情',price,0)) as 言情,sum(iif(objectClass='杂志',price,0)) as 杂志,sum(iif(objectClass='电脑',price,0)) as 电脑 from 表名 where month([date])=month(now()) union select "全部" as statstate,sum(iif(objectClass='武侠',price,0)) as 武侠,sum(iif(objectClass='言情',price,0)) as 言情,sum(iif(objectClass='杂志',price,0)) as 杂志,sum(iif(objectClass='电脑',price,0)) as 电脑 from 表名
jaket_vip 2004-12-31
  • 打赏
  • 举报
回复
有些东西不是想当然!
xiaoyuehen 2004-12-31
  • 打赏
  • 举报
回复
回楼主, 你这样的显示方式我觉得不符合一般规则吧?
这样呢?
商品名 产量
钢笔 1000
铅笔 2000
.
.
.
一般习惯是向下看的啊...

或许是这样的报表也比较符合吧(可以用存储过程来做..动态执行 SQL 语句.)?

钢笔 铅笔 圆珠笔...
日产量 aaaa bbbb cccc
月产量 1000 2000 15000 ...
年产量 xxxx yyyy zzzzz
潜水的鱼 2004-12-31
  • 打赏
  • 举报
回复
楼主, 你的不适合用sql语句实现, 效率低, 结合程序吧, 不过有空可以玩玩用SQL实现;


俺的, 结合程序已实现了, 只是想知道只用SQL, 有什么好的方法,望高手指导下;
潜水的鱼 2004-12-31
  • 打赏
  • 举报
回复
借楼主的光:请大家帮俺想想, 解决,另开贴给分;

表1: ObjectClass

id name code

1 武侠 1001
2 言情 1002
3 杂志 1004
4 电脑 1005


表2: StatState

id state value
1 所有 all
2 本月 month

表3: ObjectOrderList

id objectName objectClass price date

1 神雕侠侣 武侠 50.0 2004-10-1
2 天龙八部 武侠 38 2004-12-1
3 侠客行 武侠 34 2004-10-1
4 还珠格格 言情 37 2004-12-1
5 还珠格格2 言情 33 2004-12-1
6 还珠格格3 言情 39 2004-10-1
8 计算机爱好者 电脑 20 2004-12-1
9 程序员 电脑 28 2004-10-1
10 读者 杂志 4 2004-12-1
11 深圳青年 杂志 6 2004-10-1


希望得到的结果是:

StatState 武侠 言情 杂志 电脑

所有 122 109 10 48
本月 38 33 4 20


通过 sql 希望得到的是一个统计价格的数据集, 不知是否描述清晰, 望高手指教;

mrshelly 2004-12-31
  • 打赏
  • 举报
回复
程序临时表。
加载更多回复(6)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧