SQL语句调用,请帮我写出以下语句。有劳谢谢了

SQL数据库表名为guest

帐号 消费 时间 金额 班次
Accounts Details Date Money Class
S0001 房费 2010-01-01 280 001
S0001 酒水 2010-01-02 120 001
S0001 房费 2010-01-08 300 003
S0002 酒水 2010-01-29 50
S0003 房费 2010-01-31 180 002
S0004 房费 2010-02-01 230 001
S0005 酒水 2010-02-01 100
S0005 房费 2010-02-02 128 001

1.查询出房费都大于200的帐号。

2.查询出1月份每个帐号酒水和房费的总金额。

3.删除1月份班次为空的记录。

4.将不是房费的记帐代码的班次都更改为‘001’。

5.查询出消费都大于100的帐号。

第1个回答  2015-11-06
1、 select Accounts from guest where Details='房费' and Money>200;
2、 select Details,sum(Money) from guest where to_char(Date,'YYYYMM')='201501' group by Details;
3、 delete from gust where to_char(Date,'YYYYMM')='201501' and Class is null;
4、 update guest set Class=001 where Details != '房费';
5、 select Accounts from guest where Accounts in (select Accounts,sum(Money) from guest group by Accounts having sum(Money) > 100);追问

    select Accounts from guest where Details='房费' and Money>200;

    一:select * from guest where Details='房费' and Money>200;可以这样吗 应为有时候我经常看到有人用*号代替并不知道是什么意思 能解释下吗

追答

首先,不好意思 第五个搞错了:
5.查询出消费都大于100的帐号。

应该是:
select Accounts from (select Accounts,sum(Money) from guest group by Accounts having sum(Money) > 100);

用*号代替的意思
select * from guest 表示查询出guest表中的所有列,
select Accounts,Details from guest 表示查询出guest表中的Accounts,Details两列,用逗号隔开你想要查询的列名称

本回答被网友采纳
相似回答