回覆列表
  • 1 # 使用者5540256312630

    問個問題,你現在求得是1-2月,所以是1月求N列,2月求Q列,那麼如果你要求的是1-7月,那麼是不是1月求N列,7月求Q列,中間的N列和Q列還求麼?

    如果不求,那麼可以用union all+max+巢狀查詢,就是先union 查出一個 1月的N列,其他OPQ列制0,七月也這樣處理,Q列合併,其他值制0,全部的是OP列合併,NQ制0,然後在外面再巢狀一層group 再求max。(不過這個方法太麻煩了,效率肯定慢的嚇死人)而且得不償失。

    另外一個辦法,能想到的就是編函式(個人估計要便三個,一個起始月的,一個全部group by的,還有一個結束月的,一個函式也行,不過輸出的結果就要用table的格式存了。),其實和上面的寫法差不多,就是你輸入你的起始月和結束月,然後在過程中去執行上面寫得那個過程,只不過你可以把過程拆開,這樣就能控制了,你如起始月的時候計算N列,結束月的時候計算Q列,然後在大於等於和小於等於的時候計算O和P列(不用迴圈直接兩個數就行),然後輸出。(這個似乎好控制一些。寫過程也行,單純的sql,沒辦法判斷最大值和最小值,就算能判斷,也要巢狀好幾層,肯定很慢)

  • 中秋節和大豐收的關聯?
  • 我懷孕32周老是失眠睡不著,白天也不想睡怎麼辦?