台灣最大程式設計社群網站
線上人數
1685
 
會員總數:246145
討論主題:189731
歡迎您免費加入會員
討論區列表 >> Oracle >> SQL的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL的問題
價值 : 10 QP  點閱數:1651 回應數:5
樓主

Bryant
門外漢
0 1
10 2
發送站內信

我有一個table 裡面有glass_status ,carrier_id ,glass_id
一個carrier_id裡面會有多個glass_id
每一個glass_id都會有自己的status
我希望出現
carrier_id | hold_qty
----------------------
carrier1 1
carrier2 5
carrier3 0
carrier4 7
這種狀態

我SQL語法這樣下
select sum(decode(glass_status ,
'HOLD',
'1',
'0')
)
AS hold_qty FROM r_wip_glss
where carrier_id = (select carrier_id from tableName)
執行錯誤
這要如何解決

搜尋相關Tags的文章: [ SQL語法 ] ,
本篇文章發表於2012-03-28 18:09
1樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
SQL中的SUBQUERY只有一筆資料嗎?

SELECT CARRIER_ID FROM TABLENAME;


若為多筆資料,不能用=,要用IN


本篇文章回覆於2012-03-29 10:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
還有...,您要使用匯總涵數,欄位的Data Type為Number之類的,加了單引號就會變Char了(差點沒注意到...)


本篇文章回覆於2012-03-29 10:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Bryant
檢舉此回應
可是我這樣下SQL所撈到的欄位只有一個
而且那個欄位的值是是where條件裡面list的總和
我是希望能依據list裡面的每一個carrier ID
計算出相對應的QTY

希望是

SELECT SUM(DECODE(GLASS_STATUS, 'HOLD', 1, 0)) AS HOLD_QTY
FROM R_WIP_GLSS
WHERE CARRIER_ID IN (SELECT CARRIER_ID FROM TABLENAME WHERE CARRIER_ID= ?);

※CARRIER_ID=在R_WIP_GLSS裡面的每一個CARRIER_ID
本篇文章回覆於2012-03-29 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應

本篇文章回覆於2012-03-29 13:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Bryant
檢舉此回應
謝謝各位高手

我已經解出來了

本篇文章回覆於2012-03-29 14:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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