資料庫全表打開如下圖

想要統計輸出成下圖這樣

求:統計所有列全一致的重復行次數(頻次)查詢命令,帶時間范圍。
標題行:執行日期 專案編碼 專案名稱 開單科室編碼 開單科室名稱 執行科室編碼 執行科室名稱 單價
哪位前輩可以指導一下
uj5u.com熱心網友回復:
select
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
,count(*) as '頻次'
from 表
where 年月 between '201901' and '201912' --自己定義取頻次的時間
group by
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
uj5u.com熱心網友回復:
對了還有個問題,這個表1里專案沒單位,另一個表2里有專案單位,怎么讓表1里專案后加列單位呢,
還有有的專案有負值,怎么能輸出顯示正負值抵消后的結果呢
謝謝啦
uj5u.com熱心網友回復:
1、關聯一下即可:表1left join 表2 on 表1.主鍵=表2.主鍵2、正負抵消是因為退貨吧,要是退貨的話需要有退貨標記,于之前的開票資料要對應上,然后當條減去退貨的金額,如果為0,即視為不及頻次。
uj5u.com熱心網友回復:
退貨沒有標記,只是在單價那為-XX
這樣能抵消嗎
uj5u.com熱心網友回復:
沒有標記,單價-XX處理起來會有點兒麻煩:首先要過濾不是負數的頻次,然后再選-XX 的頻次,最后這兩個表關聯,頻次做差值才行。uj5u.com熱心網友回復:
那怎么做呢,勞煩指教一下
uj5u.com熱心網友回復:
select
a.執行日期
,a.專案編碼
,a.專案名稱
,a.開單科室編碼
,a.開單科室名稱
,a.執行科室編碼
,a.執行科室名稱
,a.單價
,a.頻次-isnull(b.頻次,0) as 頻次
from
(select
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
,count(*) as '頻次'
from 表
where 年月 between '201901' and '201912' --自己定義取頻次的時間
and 單價>0
group by
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
)a
left join
(
select
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
,count(*) as '頻次'
from 表
where 年月 between '201901' and '201912' --自己定義取頻次的時間
and 單價<0
group by
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
) b
where a.頻次-isnull(b.頻次,0) >0
uj5u.com熱心網友回復:
不行啊,
不行啊,運行顯示FROM字句語法錯誤
uj5u.com熱心網友回復:
select
a.執行日期
,a.專案編碼
,a.專案名稱
,a.開單科室編碼
,a.開單科室名稱
,a.執行科室編碼
,a.執行科室名稱
,a.單價
,a.頻次-isnull(b.頻次,0) as 頻次
from
(select
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
,count(*) as '頻次'
from 表
where 年月 between '201901' and '201912' --自己定義取頻次的時間
and 單價>0
group by
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
)a
left join
(
select
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
,count(*) as '頻次'
from 表
where 年月 between '201901' and '201912' --自己定義取頻次的時間
and 單價<0
group by
執行日期
,專案編碼
,專案名稱
,開單科室編碼
,開單科室名稱
,執行科室編碼
,執行科室名稱
,單價
) b on a.執行日期=b.執行日期 and a.專案編碼=b.專案編碼 and a.專案名稱=b.專案名稱 and a.開單科室編碼=b.開單科室編碼 and a.開單科室名稱=b.開單科室名稱 and a.單價=b.單價*-1
where a.頻次-isnull(b.頻次,0) >0
uj5u.com熱心網友回復:
執行顯示
用于函式引數的個數不對 在查詢運算式 'a.頻次-isnull(b.頻次,0'中。
uj5u.com熱心網友回復:
或者老哥QQ多少,我QQ咨詢你行嗎uj5u.com熱心網友回復:
發私信吧~~csdn自帶的
uj5u.com熱心網友回復:
selecta.ORDERDEPTCODE
,a.ORDERDEPTNAME
,a.EXECDEPTCODE
,a.EXECDEPTNAME
,a.CHARGEITEMCODE
,a.CHARGEITEMNAME
,a.MONEY
,a.TIMES-iif( IsNull(b.TIMES), 0, b.TIMES ) as TIMES
from
(select
ORDERDEPTCODE
,ORDERDEPTNAME
,EXECDEPTCODE
,EXECDEPTNAME
,CHARGEITEMCODE
,CHARGEITEMNAME
,MONEY
,count(*) as 'TIMES'
from 表
where 年月 between '201901' and '201912' --自己定義取TIMES的時間
and MONEY>0
group by
,ORDERDEPTCODE
,ORDERDEPTNAME
,EXECDEPTCODE
,EXECDEPTNAME
,CHARGEITEMCODE
,CHARGEITEMNAME
,MONEY
)a
left join
(
select
ORDERDEPTCODE
,ORDERDEPTNAME
,EXECDEPTCODE
,EXECDEPTNAME
,CHARGEITEMCODE
,CHARGEITEMNAME
,MONEY
,count(*) as 'TIMES'
from 表
where 年月 between '201901' and '201912' --自己定義取TIMES的時間
and MONEY<0
group by
,ORDERDEPTCODE
,ORDERDEPTNAME
,EXECDEPTCODE
,EXECDEPTNAME
,CHARGEITEMCODE
,CHARGEITEMNAME
,MONEY
) b on
a.ORDERDEPTCODE=b.ORDERDEPTCODE and a.ORDERDEPTNAME=b.ORDERDEPTNAME
and a.CHARGEITEMCODE=b.CHARGEITEMCODE and a.CHARGEITEMNAME=b.CHARGEITEMNAME and a.MONEY=b.MONEY*-1
where a.TIMES-iif( IsNull(b.TIMES), 0, b.TIMES ) >0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/24349.html
標籤:疑難問題
上一篇:我想請教大家一下,python爬取網站圖片,運行時沒有報錯,但是也不成功創建檔案夾怎么辦?
下一篇:怎么寫
