今天主要是資料庫,然後哎,白天做了一件蠢事,惹得一個小姐姐心情不好。。。 今天把模擬題做完了,老師自己都說出的有問題。。。。 但是現在自己很多語法也記不住,特別是存儲過程和觸發器、視圖,這些重點考察的語法。好像都有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表中的價錢,然後再乘起來,應該是要另建一張表來寫的。具體怎麼寫明天再說了,,,
白天讓你寫的時候,就不知道抓緊時間,我知道大家為什麼都用番茄鐘了,沒有時間限制,真是效率低下。