這里有兩列值
(天) 列A 列B
第1天 3 6
第2天 4 7
第3天 3 8
第4天 7 10
第5天 5 7
第6天 6 12
第7天 4 6
要查詢第一天 (A值/B值= C1) + 第2天(A值/B值= C2) + 第3天(A值/B值=C3) + ......第7天(A值/B值=C7);
求每天的列A/列B得到一個值C ,得到的每天的C值相加在求平均數。
注:不要 列A七天的值加到一起/列B七天的值加到一起 得到的值。而是要每天的 列A/列B 得到C值,七天的C值相加在求平均 求大神 。
uj5u.com熱心網友回復:
--1.創建測驗表,添加資料
create table tmp as
select 1 dtime, 3 A, 6 B from dual union all
select 2 dtime, 4 A, 7 B from dual union all
select 3 dtime, 3 A, 8 B from dual union all
select 4 dtime, 7 A, 10 B from dual union all
select 5 dtime, 5 A, 7 B from dual union all
select 6 dtime, 6 A, 12 B from dual union all
select 7 dtime, 4 A, 6 B from dual;
--2.計算7天均值,結果取2位小數
select round(avg(c1/7),2) avgs from(select sum(a/b) avgs from tmp);
uj5u.com熱心網友回復:
SQL含義解釋
--1.7天均值相加
select sum(a/b) avgs from tmp;
--2.計算均值的均值
select round(avg(c1/7),2) avgs from(select sum(a/b) avgs from tmp);
uj5u.com熱心網友回復:
如果我求比如我要查幾天的C值、一個月的的C值、一段時間內的C值、一年的C值 隨著時間的變化該怎么寫呢
uj5u.com熱心網友回復:
也很簡單,稍微改下就可以了。uj5u.com熱心網友回復:
只要把陳述句中的7改成30,365或366即可。
一段時間,比如45天,7改成45即可。
uj5u.com熱心網友回復:
還可以寫成動態的,7改成count(*)支持任意天數。
uj5u.com熱心網友回復:
還可以寫成動態的,7改成count(*)
支持任意天數。
SELECT
round (avg(N."庫存剩余率"/count(*),2)) avgs from( select SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)))from TZYPLUPRO T
這樣寫提示引數無效是因為我語法錯了嗎
uj5u.com熱心網友回復:
剛開始學習SQL?你寫的SQL至少存在以下7個問題:
1.N."庫存剩余率"是個什么東東,從哪突然冒出來的。。。。
2.欄位名稱不建議用中文。
3.函式avg用錯了一個括號
4.round括號用錯了地方
5.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 沒有用到。
6.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 需要提供表名,否則外層陳述句無法訪問
7.count(*) 不能這樣使用,需要放到內層陳述句,外層陳述句使用它的別名。
uj5u.com熱心網友回復:
剛開始學習SQL?
你寫的SQL至少存在以下7個問題:
1.N."庫存剩余率"是個什么東東,從哪突然冒出來的。。。。
2.欄位名稱不建議用中文。
3.函式avg用錯了一個括號
4.round括號用錯了地方
5.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 沒有用到。
6.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 需要提供表名,否則外層陳述句無法訪問
7.count(*) 不能這樣使用,需要放到內層陳述句,外層陳述句使用它的別名。
uj5u.com熱心網友回復:
請參照我寫的SQL陳述句修改。uj5u.com熱心網友回復:
剛開始學習SQL?
你寫的SQL至少存在以下7個問題:
1.N."庫存剩余率"是個什么東東,從哪突然冒出來的。。。。
2.欄位名稱不建議用中文。
3.函式avg用錯了一個括號
4.round括號用錯了地方
5.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 沒有用到。
6.SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC)) 需要提供表名,否則外層陳述句無法訪問
7.count(*) 不能這樣使用,需要放到內層陳述句,外層陳述句使用它的別名。

N.點出的是庫存剩余率 ,我也是剛學SQL。。。
SELECT
round avg(N."庫存剩余率"/count(*),2) avgs from( select SUM((T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC))) avgs
FROM(
select T.ORGCODE,PS.STORE_NAME,T.PLUCODE,P.PRODUCT_NAME,
ST.DESCRIPTION,G.GEO_NAME,PG.GROUP_NAME,
sum(T.QC) as QC, --昨天盤點
sum(T.QM) as QM, --當日盤點
sum(T.PS) as PS, --當日配送
sum(T.XTPS) as XTPS, --當天
sum(T.DBPS) as DBPS, --手工配送
sum(T.XS) as XS, -- 銷售
SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC) AS "當日庫存總量", --- 0
(SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC))) AS "庫存剩余率"
uj5u.com熱心網友回復:
PS表是什么?P表是什么?
ST表是什么?
G表是什么?
PG表是什么?
。。。。都是些什么代碼啊
uj5u.com熱心網友回復:
PS表是什么?
P表是什么?
ST表是什么?
G表是什么?
PG表是什么?
。。。。都是些什么代碼啊
這個是引出其他的表的資料 ,我想查的是(SUM(T.QM)/(SUM(T.PS)+SUM(T.XTPS)+SUM(T.DBPS)+SUM(T.QC))) AS "庫存剩余率" , 這個該怎么寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/79208.html
標籤:開發
