日期:2014-05-18  浏览次数:20666 次

请教一句挺难的数据库查询语句。
刚自学数据库,只会简单的几种语句。今天老师给了个题目,挺难的。请教。为输入方便,我只用汉字介绍下题目。


  一数据表,记录某类蔬菜每日的价格。

  有如下几个字段:蔬菜编码 蔬菜名 价格 日期(格式:1988/08/21)

   
  题目要求,请统计出,某蔬菜品种,在每年的7、8月份的平均价格,并按年份由远到近显示出来。 


   

  坦白说,之前学数据库原理,本来以为数据库就那么几条基本语句,不停组合实现复杂功能,应该不太难。可这道题我突然就不会了。也许是许多细节记得不清楚了。

   
 

------解决方案--------------------
SQL code

select 
蔬菜编码,蔬菜名,avg(价格) as 平均价格,convert(varchar(7),日期,120) as 日期
from tbl
where month(日期) in(7,8)
group by
蔬菜编码,蔬菜名,convert(varchar(7),日期,120)

------解决方案--------------------
有如下几个字段:蔬菜编码 蔬菜名 价格 日期(格式:1988/08/21)
题目要求,请统计出,某蔬菜品种,在每年的7、8月份的平均价格,并按年份由远到近显示出来。 
SQL code

select 蔬菜, avg(价格) as 均价, year(日期) as year
from table
where month(日期) in (7,8)
group by 蔬菜, year(日期)
order by year

------解决方案--------------------
SQL code
SELECT  蔬菜编码, 蔬菜名, AVG(价格) AS 平均价格, CONVERT(VARCHAR(7), 日期, 120) AS 日期
FROM    tbl
WHERE   MONTH(日期) IN ( 7, 8 )
GROUP BY 蔬菜编码, 蔬菜名, CONVERT(VARCHAR(7), 日期, 120)