欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

小刘同学的第十九篇博文

程序员文章站 2022-03-14 14:23:51
今天主要是数据库,然后哎,白天做了一件蠢事,惹得一个小姐姐心情不好。。。 今天把模拟题做完了,老师自己都说出的有问题。。。。 但是现在自己很多语法也记不住,特别是存储过程和触发器、视图,这些重点考察的语法。好像都有as吧 第6题始终没有解决,我还没完全想明白,到底是为什么错了。 输出结果是这个: 自 ......

今天主要是数据库,然后哎,白天做了一件蠢事,惹得一个小姐姐心情不好。。。

今天把模拟题做完了,老师自己都说出的有问题。。。。

但是现在自己很多语法也记不住,特别是存储过程和触发器、视图,这些重点考察的语法。好像都有as吧

小刘同学的第十九篇博文

第6题始终没有解决,我还没完全想明白,到底是为什么错了。

create view annual_sales(sno, sname, Yea2, sales)
as
    select Shop.sno, sname, CONVERT(varchar(4), times, 20), SUM(price * Qty)
    from Orders inner join Shop on Orders.sno = Shop.sno
                inner join Food on Orders.fno = Orders.fno
    group by Shop.sno, sname, times
select * from annual_sales

输出结果是这个:

小刘同学的第十九篇博文

自信满满的以为对了,但是结果发现了两个2018,我是按年龄来排序的。。。发现错了之后,应该是按年份分的时候,年份虽然相同,但是时间不同,而分组的时候,还是把时间不同却同一年的两条数据分开了了。

 

create view annual_sales(sno, sname, Yea2, sales)
as
    select Orders.sno, sname, CONVERT(varchar(4), times, 20), SUM(price * Qty)
    from Orders inner join Shop on Orders.sno = Shop.sno
                inner join Food on Orders.fno = Orders.fno
    group by Orders.sno, sname, CONVERT(varchar(4), times, 20)
select * from annual_sales

 

group by convert(varchar(4), times, 20) 这样就能确定是按同一个年份来排的了,改进之后,查询出的值:

小刘同学的第十九篇博文

2017和2018相同,我就感觉很奇怪我把shop表里的price改成500了,发现2017和2018的sales同时也改了。

肯定是小刘同学的第十九篇博文这里,我写的时候就觉得这里指示的很不明确,price和Qty直接乘绝对是有问题的,我想让每个商品找到对应Food表中的价钱,然后再乘起来,应该是要另建一张表来写的。具体怎么写明天再说了,,,

白天让你写的时候,就不知道抓紧时间,我知道大家为什么都用番茄钟了,没有时间限制,真是效率低下。