台灣最大程式設計社群網站
線上人數
1045
 
會員總數:242754
討論主題:187716
歡迎您免費加入會員
討論區列表 >> MS SQL >> sql指令如何下,可以同一資料庫相同欄位不同條件的資料?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
sql指令如何下,可以同一資料庫相同欄位不同條件的資料?
價值 : 50 QP  點閱數:379 回應數:8

樓主

pkko
門外漢
0 8
128 13
發送站內信

有無方法可以同時查詢出相同資料庫相同欄位不同條件的資料
假設我要的sql指令為:SELECT 業績(a部門),業績(b部門) WHERE 料號=1 AND XX
資料庫結構為
料號,部門,業績
1,A,10
1,B,10
2,A,20
2,B,20

這樣的話,我要取出料號為1的A部門業績10和B部門業績10
要如何只有一筆資料,而不是查出兩筆資料呢?
例如:SELECT 業績(a部門),業績(b部門) WHERE 料號=1 AND XX
然後答案會得到一筆資料如右邊: 10,10
有這種可能性嗎?
而不是得到兩筆資料如下:
10
10

因為實際上是要搭配LEFT JOIN 和其他的資料一起使用的
還是只能二次加工?

搜尋相關Tags的文章: [ SQL ] ,
本篇文章發表於2018-05-27 07:34
== 簽名檔 ==
努力!努力!再努力!!!
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
回答第一個問題






本篇文章回覆於2018-05-27 09:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

pkko
檢舉此回應
謝謝大大回復
不過我只需要某一料號
可是有兩個不同的部門

如果用WHERE 料號=1 AND 部門 IN(A,B)
這樣會有兩列資料
10
10

我想要得到的是
SELECT 業績(a部門),業績(a部門)

這樣出來一個答案是10,10(一筆資料兩個欄位的答案,而並非兩筆資料一個欄位的答案)
是不是要用子查詢才可以辦到?
可是我也想不到子查詢可以怎麼做...
本篇文章回覆於2018-05-27 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小魚
檢舉此回應
你的需求有點怪,
這樣是可以得出同樣的結果,
但不知道是不是你要的,


本篇文章回覆於2018-05-27 15:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

pkko
檢舉此回應
Cool耶,這就是我要的答案
我來試試看哦!

大大您說的沒錯,我這個需求比較奇怪
是因為前面其實已經有來自三個資料庫的欄位,A.xx,b.xx,c.xx 然後還有現在這個資料,d.x1,d.x2
我可能要研究一下
要如何用join left 把這些資料都串起來
前面三個資料都已經串起來了
後面這兩個就是不知道怎麼處理
感謝您提供原始方式
我想想看要如何join left 並設定條件
本篇文章回覆於2018-05-27 17:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
另外你可以去查查

FOR XML PATH('')

我在想也許那才是你要的...
本篇文章回覆於2018-05-27 21:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小魚
檢舉此回應
不過 FOR XML PATH('') 如果處理大量資料效率很差,
這種事我通常是在後端處理...
本篇文章回覆於2018-05-27 21:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

pkko
檢舉此回應
小魚大大您好
小弟嘗試過了
您的方式完全正確,就是我要的答案哦!!!好強!!!
我會選擇您當作正確答案
另外我再問一個問題
其實我的原始資料是這樣
要如何加入您給我的指令呢...我以為我可以加進去,但加不進去...
a,b,c都是一個table,這次您幫我完成的指令是d table
strsql = "select a.id,a.料號,b.客戶,b.材質c.數量,c.庫存 FROM a"
strsql = strsql & " LEFT JOIN b ON a.料號=b.料號 "
strsql = strsql & " LEFT JOIN c ON a.料號=c.料號 "
strsql = strsql & "WHERE a.料號=1"

請問一下大大
我還要加入一個d.業績(a部門)和一個d.業績(b部門)的欄位
要如何放到以上的程式碼內?
也就是您幫我完成的那段程式碼,我不知道怎麼塞進去...
本篇文章回覆於2018-05-28 16:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小魚
檢舉此回應
可以把原始資料 跟 你要的結果 Show 出來,
你用說的沒什麼概念...
本篇文章回覆於2018-06-03 09:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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