Re: [SQL ] 新手兩張表求解

作者: hhomerun (HOMERUN家族弟弟)   2014-04-19 22:11:45
如果我沒把你的問題理解錯誤,
如果只是為了達到目的的話, 有兩個解法.
第一個方法:
走實在路線的, 反正你的課程這麼少, 那就乾脆不用 Esub這張表了.
用case when 來做.
SELECT case when [clsAM]=1 then '國' when [clsAM]=2 then '英'
when [clsAM]=3 then '數' when [clsAM]=4 then '理' end [早上]
,case when [clsPM]=1 then '國' when [clsPM]=2 then '英'
when [clsPM]=3 then '數' when [clsPM]=4 then '理' end [下午]
FROM [test].[dbo].[Eclass]
第二個方法:
可能比較符合你心目中的複雜.
你就這樣想 "既然一個會衝突, 那再JOIN 一個不就好了. 不是嗎? 哈哈
SELECT B.sub [早上]
,C.sub [下午]
FROM [test].[dbo].[Eclass] AS A
JOIN [test].[dbo].[Esub] AS B
ON A.[clsAM]=B.[uid]
JOIN [test].[dbo].[Esub] AS C
ON A.[clsPM]=C.[uid]
希望魯蛇的答案對你有幫助QQ
喔對了, 希望哥葛您下次發文的時候...
values 的名稱要在整篇文章裡都保持一致阿~~~
不然很難閱讀, 也可能會令人誤解你想要問的問題.
※ 引述《justlike5566 (5566天下無敵)》之銘言:
: 今天做練習遇到一個問題想了很久不知何解
: dbo.Esub
: uid sub
: 1 國
: 2 英
: 3 數
: 4 理
: dbo.Eclass
: clAm clPm
: 1 4
: 2 3
: 3 2
: 4 1
: Eclass 各對Esub 的sid
: 我想做出
: 早上 下午
: 國 理
: 英 數
: 數 英
: 理 國
: 寫法是
: SELECT a.clsam AS '早上',a.clspm AS '下午' FROM dbo.Eclas AS a
: JOIN dbo.Esub AS b ON a.clam=b.sid
: 寫到這邊後突然想到 早上跟下午的判斷會衝突 不知道條件要怎麼下
: 求神人解答 感恩
作者: MagicPaul (達人)   2014-04-20 19:32:00
想問一下,魯蛇到底是啥意思啊
作者: cleanwind (C.Y.)   2014-04-20 22:43:00
魯蛇是 loser 的諧音,溫拿是 winner 的諧音。

Links booklink

Contact Us: admin [ a t ] ucptt.com