首页
/
每日頭條
/
職場
/
wps如何運行sql聯合查詢
wps如何運行sql聯合查詢
更新时间:2025-07-07 04:33:51

  在上一節裡,按區分項目的規則,對數據進行了初步彙總,完成了【5. WPS表格報表的SQL數據查詢方案設計】中提到的第一步的目标:第一步,先把同一個項目的計劃進行初步彙總,形成每條數據都是不同項目的臨時查詢表。

  在這一節中,将逐步完成第二步的目标:第二步,根據第一步生成的臨時查詢表,對功能分類和單位進行分級彙總,生成五級的彙總臨時表,最後把這些分級彙總表進行合并排序,生成最後的報表。這一步要生成排序字段(圖 5.3),五級彙總數據行的排序就依靠這個排序字段實現。

  wps如何運行sql聯合查詢(7.使用WPS工作薄連接調試SQL之二)(1)

  報表效果 圖5.3

  如圖5.3 報表效果圖中,科目名稱中第一行 “合計” 的實現。

  首先分析一下合計行的列:

  排序為 0;類、款、項三個列都是空;科目名稱為合計;淺綠色部分的指标及計劃都是根據where條件彙總而來;藍色部分是把項目分類進行“行轉列”的操作,行轉列使用iif 函數,具體請搜索 “iif函數行轉列”。無group by 分組條件。 根據以上分析,第二步外層SQL 查詢語句如下:

  select 0 as [排序], as [類], as [款], as [項], 合計 as [科目名稱] , sum(T.[指标金額]) as [指标總金額], sum(T.[已用指标]) as [指标已用金額], [指标總金額]-[指标已用金額] as [指标可用金額], sum(T.[計劃合計]) as [計劃金額], sum( iif( T.[項目類别]=工資福利支出, T.[計劃合計],0)) as [工資福利支出], sum( iif( T.[項目類别]=對個人和家庭補助支出, T.[計劃合計],0)) as [對個人和家庭補助支出], sum( iif( T.[項目類别]=公用經費, T.[計劃合計],0)) as [公用經費], sum( iif( T.[項目類别]=部門預算項目, T.[計劃合計],0)) as [部門預算項目], sum( iif( T.[項目類别]=專項資金項目, T.[計劃合計],0)) as [專項資金項目], sum( iif( T.[項目類别]工資福利支出 and T.[項目類别]對個人和家庭補助支出 and T.[項目類别]公用經費 and T.[項目類别]部門預算項目 and T.[項目類别]專項資金項目, T.[計劃合計],0)) as [其他項目] from (/*括号内第一步内層的子查詢,取别名為T*/) as T // 第9~11行 IIF函數判斷如果不屬于以上列舉的情況,統一處理為其他項目分類

  從上面的語句可以看出,從子查詢來源的字段隻有4個,分别為T.[指标金額]、T.[已用指标]、T.[計劃合計]、T.[項目類别],其他字段都是臨時生成,或者基于以上4個字段計算得到。

  第二步外層查詢的實現基礎是第一步内層子查詢生成的臨時表。臨時表的查詢具體請參看 【6. 使用WPS工作薄連接調試SQL之一】,第一步使用的SQL語句如下:

  select [單位], [項目], avg([指标總金額]) as [指标金額], avg([指标已用金額]) as [已用指标], [指标金額]- [已用指标] as [指标餘額], sum( [計劃金額]) as [計劃合計], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購] from [src$] where (left([單位],6)=101013) and ([計劃月份] between and ) group by [單位], [項目], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購] order by [項目]

  根據第二步外層查詢需要字段的信息,把上面的内層子查詢SQL語句進行精簡,隻保留需要的4個字段,去掉無用的排序order by 語句:

  select avg([指标總金額]) as [指标金額], avg([指标已用金額]) as [已用指标], sum( [計劃金額]) as [計劃合計], [項目類别] from [src$] where (left([單位],6)=101013) and ([計劃月份] between and ) group by [單位], [項目], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購]

  将上面精簡過的内部子查詢填入第二步外層SQL查詢語句,為了便于閱讀,将外層查詢語句關鍵字大寫:

  SELECT 0 as [排序], as [類], as [款], as [項], 合計 as [科目名稱] , sum(T.[指标金額]) as [指标總金額], sum(T.[已用指标]) as [指标已用金額], [指标總金額]-[指标已用金額] as [指标可用金額], sum(T.[計劃合計]) as [計劃金額], sum( iif( T.[項目類别]=工資福利支出, T.[計劃合計],0)) as [工資福利支出], sum( iif( T.[項目類别]=對個人和家庭補助支出, T.[計劃合計],0)) as [對個人和家庭補助支出], sum( iif( T.[項目類别]=公用經費, T.[計劃合計],0)) as [公用經費], sum( iif( T.[項目類别]=部門預算項目, T.[計劃合計],0)) as [部門預算項目], sum( iif( T.[項目類别]=專項資金項目, T.[計劃合計],0)) as [專項資金項目], sum( iif( T.[項目類别]工資福利支出 and T.[項目類别]對個人和家庭補助支出 and T.[項目類别]公用經費 and T.[項目類别]部門預算項目 and T.[項目類别]專項資金項目, T.[計劃合計],0)) as [其他項目] FROM ( select avg([指标總金額]) as [指标金額], avg([指标已用金額]) as [已用指标], sum( [計劃金額]) as [計劃合計], [項目類别] from [src$] where (left([單位],6)=101013) and ([計劃月份] between and ) group by [單位], [項目], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購] ) as T

  将以上SQL語句複制到WPS查詢的命令文本中,确定。

  查詢結果,圖7.0(或7.2第一行)

  wps如何運行sql聯合查詢(7.使用WPS工作薄連接調試SQL之二)(2)

  圖 7.0

  仔細分析數據發現這個彙總結果并不正确,錯誤發生在【指标已用金額、指标可用金額】這兩個字段,通過分析源數據行的數據(圖7.1),發現部分同一項目出現在途數據未更新到所有行,導緻一個項目的【指标已用金額】不一緻的現象。

  wps如何運行sql聯合查詢(7.使用WPS工作薄連接調試SQL之二)(3)

  源數據分析 圖7.1

  根據圖7.1的分析結果,含在途計劃金額=指标已用金額如果需要含在途計劃的查詢,字段可以精簡到3個,将計劃金額去掉,在外層查詢裡做計算即可。

  修改為在途計劃查詢的SQL語句:(圖7.2 第三行)

  //含在途計劃的查詢 SELECT 0 as [排序], as [類], as [款], as [項], 合計 as [科目名稱] , sum(T.[指标金額]) as [指标總金額], sum(T.[已用指标]) as [指标已用金額], [指标總金額]-[指标已用金額] as [指标可用金額], [指标已用金額] as [計劃金額(含在途)], sum( iif( T.[項目類别]=工資福利支出, T.[已用指标],0)) as [工資福利支出], sum( iif( T.[項目類别]=對個人和家庭補助支出, T.[已用指标],0)) as [對個人和家庭補助支出], sum( iif( T.[項目類别]=公用經費, T.[已用指标],0)) as [公用經費], sum( iif( T.[項目類别]=部門預算項目, T.[已用指标],0)) as [部門預算項目], sum( iif( T.[項目類别]=專項資金項目, T.[已用指标],0)) as [專項資金項目], sum( iif( T.[項目類别]工資福利支出 and T.[項目類别]對個人和家庭補助支出 and T.[項目類别]公用經費 and T.[項目類别]部門預算項目 and T.[項目類别]專項資金項目, T.[已用指标],0)) as [其他項目] FROM ( select max([指标總金額]) as [指标金額], max([指标已用金額]) as [已用指标],[項目類别] from [src$] where (left([單位],6)=101013) and ([計劃月份] between and ) group by [單位], [項目], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購] ) as T

  不含在途計劃的查詢,計劃仍然需要合計:(圖7.2 第二行)

  //不含在途計劃的查詢 SELECT 0 as [排序], as [類], as [款], as [項], 合計 as [科目名稱] , sum(T.[指标金額]) as [指标總金額], sum(T.[已用指标]) as [指标已用金額], [指标總金額]-[指标已用金額] as [指标可用金額], sum(T.[計劃合計]) as [計劃金額], sum( iif( T.[項目類别]=工資福利支出, T.[計劃合計],0)) as [工資福利支出], sum( iif( T.[項目類别]=對個人和家庭補助支出, T.[計劃合計],0)) as [對個人和家庭補助支出], sum( iif( T.[項目類别]=公用經費, T.[計劃合計],0)) as [公用經費], sum( iif( T.[項目類别]=部門預算項目, T.[計劃合計],0)) as [部門預算項目], sum( iif( T.[項目類别]=專項資金項目, T.[計劃合計],0)) as [專項資金項目], sum( iif( T.[項目類别]工資福利支出 and T.[項目類别]對個人和家庭補助支出 and T.[項目類别]公用經費 and T.[項目類别]部門預算項目 and T.[項目類别]專項資金項目, T.[計劃合計],0)) as [其他項目] FROM ( select max([指标總金額]) as [指标金額], max([指标已用金額]) as [已用指标], sum([計劃金額]) as [計劃合計], [項目類别] from [src$] where (left([單位],6)=101013) and ([計劃月份] between and ) group by [單位], [項目], [項目類别], [支出功能分類], [政府經濟分類], [部門經濟分類], [是否政府采購] ) as T

  wps如何運行sql聯合查詢(7.使用WPS工作薄連接調試SQL之二)(4)

  數據查詢對比 圖7.2

  經過對比,顯然有在途計劃的查詢速度更快,因此,在以後的查詢中,我将選用有在途計劃的查詢方案作為示例。

  在本節中,實現了報表合計行的查詢,在下一節将繼續實現類款項的查詢。

  ,

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
一團泥巴能玩一整天(這塊泥巴太有趣)
一團泥巴能玩一整天(這塊泥巴太有趣)
        無論你是學生黨還是上班族,   碰到傷心難過壓力大的時候怎麼辦?   狂吃不停?打遊戲?借酒消愁?      NO!!   這些行為殺傷力都太大!   解壓就要做點兒行之有效且不傷害自己的事情~   不如……我們relax一下玩玩泥巴?   感溫變色泥Putty      你可以準備一杯溫水,将泥巴浸入到溫開水裡,接觸到熱水的部分立刻就會變色...
2025-07-07
好看的職場類電視劇有哪些(9部堪比宮鬥劇的職場劇)
好看的職場類電視劇有哪些(9部堪比宮鬥劇的職場劇)
  大家有開始追孫俪和趙又廷主演的劇《理想之城》了嗎?這部職場劇非常精彩,高能劇情堪比宮鬥劇,被網友稱為現代版的《甄嬛傳》。以往職場劇往往會淪為批着職場皮的瑪莉蘇偶像劇,但小編發現近期有不少好看的職場題材劇,像是《怪你過分美麗》、《我是真的愛你》、《安家》等等,以下網友評論9部堪比宮鬥劇的「職場劇」,《平凡的榮耀》号稱男版《如懿傳》!      圖片來源:微...
2025-07-07
夢見自己工作很忙碌周公解夢(夢見自己在工作)
夢見自己工作很忙碌周公解夢(夢見自己在工作)
  工作在現實生活中是很平常的事情,而在做夢中卻有着不一樣的寓意,有時候是帶來好運的征兆,但是有時候是提醒你應該注意一些意外的征兆,到底該怎麼判斷呢,一起了解一下解夢說裡面對于做夢夢見工作的說法吧。  上班族夢見自己工作,說明你最近工作壓力可能比較大,而且總是不順利,要麼和同事發生争吵,要麼做的事情不如老闆的意,這可就是你自身的問題了,如果再不好好反省,恐怕...
2025-07-07
總裁喜歡上照顧女護士(美女好心為總裁工作)
總裁喜歡上照顧女護士(美女好心為總裁工作)
        顧策出差了,臨走前挑了一把車鑰匙給喬依讓她自己開車上下班,喬依接過來,回頭就擱置在抽屜裡。   賀雅這種年紀的小姑娘最喜歡拉小團體,拜她所賜,現在公司不喜歡喬依的人真不少,不過都是些小姑娘罷了,喬依并沒有放在心上,隻專心做好自己的事。   顧策的車都是百萬級别的,若是喬依真開去公司,指不定又要被怎麼議論,喬依不想惹這些麻煩。   周六晚上,喬...
2025-07-07
現在學it有前途嗎(學IT是一條好的出路嗎)
現在學it有前途嗎(學IT是一條好的出路嗎)
  如今随着互聯網産業的興起,IT行業迎來高速發展期,一些IT崗位的薪資也遠高于其他行業。所以很多同學都想進入IT行業,還有一部分是想從其他崗位轉行的,但是卻不知道學出來是否能找到工作,這也是想進入這行同學最關注的問題。      就業這塊還是不用擔心,畢竟現在是互聯網時代,計算機專業就業前景很好。随着現代經濟和科技的發展,中國IT行業已經步入了一個高速發展...
2025-07-07
Copyright 2023-2025 - www.tftnews.com All Rights Reserved