免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2015 | 回复: 6
打印 上一主题 下一主题

请教一个查询语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-17 15:14 |只看该作者 |倒序浏览
请教一个sql的查询语句,希望大家帮忙内容如下:

楼号 门牌号 编号 名称  金额
1     102     1   电费  100
1     102     2   水费  100
2     205     3   电费  100
2     205     4   水费  100
出表
楼号 门牌号 电费 水费
1     102   100  100
2     205   100  100

请帮忙做出语句,我是新手,没有积分给大家,还请原谅。

论坛徽章:
0
2 [报告]
发表于 2009-02-17 16:52 |只看该作者
select 门牌号, 电费=case 名称="电费", 水费=case 名称="水费"

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
3 [报告]
发表于 2009-02-18 08:29 |只看该作者
楼号 门牌号 编号 名称  金额
1     102     1   电费  100
1     102     2   水费  100
楼号 门牌号 电费 水费

select  a.楼号,a. 门牌号, 电费=a.金额 ,水费=b.金额   
from table a,table b
where a.楼号=b.楼号 and a.门牌号 =b.门牌号  and a.名称='电费' and b.名称='水费'

论坛徽章:
34
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
4 [报告]
发表于 2009-02-18 09:18 |只看该作者
原帖由 chuxu 于 2009-2-18 08:29 发表
楼号 门牌号 编号 名称  金额
1     102     1   电费  100
1     102     2   水费  100
楼号 门牌号 电费 水费

select  a.楼号,a. 门牌号, 电费=a.金额 ,水费=b.金额   
from table a,table b
where  ...



用这个吧!

论坛徽章:
0
5 [报告]
发表于 2009-02-18 10:22 |只看该作者
感谢版主和以上几位朋友的热心帮助,抱歉,我举的例子太简单,实际问题要复杂的多,我把问题再深入一点。如果我又增加了物业管理费,清洁费等,是不是还要增加表,from table a,table b,table c,如果这样的话有些麻烦,而且现实问题中还会有其他表比如根据门牌号找到户主姓名。
以前用过这个语句,select distinct  a.楼号,a.门牌号,b.户主姓名,sum(a.金额*(1-abs(sign(a.编号-1)))) as 电费,sum(a.金额*(1-abs(sign(a.编号-2)))) as 水费 from table a,户主信息 b where a.楼号=b.楼号 and a.门牌号=b.门牌号
group by   a.楼号,a.门牌号,b.户主姓名

现在的问题是电费的编号在不同的楼号不同,水费在不同的楼号也不同,只能依据名称来实现,而sign函数只能计算数字不能计算字符,类化a.金额*(1-abs(sign(a.名称-'电费'))) as 电费,这样的语句不能实现。

[ 本帖最后由 wdpcf 于 2009-2-18 10:28 编辑 ]

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
6 [报告]
发表于 2009-02-18 10:34 |只看该作者
像这样把按行存储的数据转成按列显示,我感觉似乎没有必要使用一个sql来处理了,开一个游标,用程序或者存储过程来处理吧。

论坛徽章:
34
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
7 [报告]
发表于 2009-02-18 22:16 |只看该作者
通过你的应用程序调用你对这个查询编的一存储过程加以实现吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP