台灣最大程式設計社群網站
線上人數
910
 
會員總數:246087
討論主題:189663
歡迎您免費加入會員
討論區列表 >> Oracle >> 【急】請問報表的sql語法如何寫?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
【急】請問報表的sql語法如何寫?
價值 : 300 QP  點閱數:2378 回應數:4
樓主


門外漢
0 15
552 22
發送站內信

請問以下報表的寫法,寫出來的sql都不太對,還請幫忙,明日中午前就需要,還請各位大大多幫忙.
報表需求: 2012年公司的線路收入總表報表條件:
1.Table A:公司代碼CLIENT_ID=’TV’, 客戶統編同時有使用保險服務SERV_ID=’INS’及 線路服務SERV_ID=’ISP’
2.Table B:公司代碼CLIENT_ID=’TV’, 期間PERIOD在201201與201212間, 是否作廢IS_CACEL=’N’, 是否列入營收INCOME_FLAG=’Y’
3.Table C:取得線路服務SERV_ID=’ISP’的費用, 帳單費用欄位為LINE_AMT 顯示欄位:年度、客戶統編、客戶名稱、線路費(線路費要依年度及客戶統編作加總)

我寫的語法如下:
SELECT
DISTINCT CT.COMPANY_ID,CT.CNAME
,SUM(ID.LINE_AMT) LINE_AMT
FROM A IM,B ID,C CT
WHERE IM.CLIENT_ID = 'TV'
AND IM.PERIOD BETWEEN '201201' AND '201212'
AND IM.INV_NO = ID.INV_NO
AND IM.BILL_ID=ID.BILL_ID
AND IM.IS_CANCEL = 'N'
AND ID.SERV_ID='ISP'
AND IM.BILL_ID IN (
SELECT DISTINCT BILL_ID FROM CUSTOMER WHERE SERV_ID='ISP'
AND CT.BILL_ID IN (SELECT BILL_ID FROM CUSTOMER WHERE SERV_ID='INS'))
GROUP BY CT.COMPANY_ID,CT.CNAME
ORDER BY CT.COMPANY_ID

搜尋相關Tags的文章: [ sql ] ,
本篇文章發表於2013-05-13 17:05
1樓
回應

神來之筆
捐贈 VP 給 神來之筆 檢舉此回應
你至少也給三個資料表會用到的schema吧:
table Name: A
table description:
這table做什用??
-----------------
col name description
-------- ------------
CLIENT_ID 這欄位做甚麼用
...
---------------------
Primary key哪幾個
foreign key ??
本篇文章回覆於2013-05-13 17:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

神來之筆
捐贈 VP 給 神來之筆 檢舉此回應
跟用到欄位, 三個table 的範例資料
table A
cliect ID XXX XX
------- ---- ----
AAA BBB sss


以及最後要得出的結果
client ID XXXX XXX
-------- ----- ----
本篇文章回覆於2013-05-13 18:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應


檢舉此回應
Table A是Customer資料表
Table B是帳單主檔
Table C是帳單明細
Table A Primary Key為Cust_ID
Table B Primary Key為Inv_NO
Table C Primary Key不太清楚,但用Inv_NO連結Table B.
Client_ID作用不大,僅是判別欄位而已.

Table的資料範例我明早po..謝謝.
本篇文章回覆於2013-05-13 18:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應


檢舉此回應
寫反了...

Table A是帳單明細
Table B是帳單主檔
Table C是Customer資料表
本篇文章回覆於2013-05-13 19:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.