PART 2

又是相親,這次是從SOPHIA那來的CASE,
說是她前公司的同事,一直想介紹給我認識,就當做是交朋友也行。

我當然是OK,有機會我就去,積極嘛!!

由於約的時間有點早,但人生大事,權重之下提早下班,OK啦!!
(寫到這…嗯….怎覺得九孔上身)

晚上7點左右抵達板橋錢櫃,SOPHIA已經先到了,
「女生從南港過來有點塞車,要等他一會」SOPHIA說,
閒談中SOPHIA說了她最近的慘況、目前正在發展的事業。
真心希望她能在上海成功發展….或許以後就可以靠她吃穿,哈!!
蘇董~~~~~叫大聲點有保祐喔!!

女主角出現,她叫NANA,
中文是個要起立+立正站好的名字-逸仙,
很有趣的巧合,也是個開玩的梗,可從這方面下手。
(PS.擬定作戰計劃可是很重要地)

有人說男女生的緣份在第一眼就確認了,
而這第一眼印象給我的觀感卻不怎麼好,
穿這樣是去上班的嗎?
打扮休閒到像是要出國渡假,
長得漂亮,不過女生化了妝,很難說的準,
而我也不太喜歡太過妖嬌型的,這不是我的菜,
很可惜,第一眼的分數並沒有幫她加到分。
(PS.我覺得NANA像是大一點+女性化的FAY)

「你好我是JASON」
「你好我是NANA」
簡單的打招呼…

活潑大方,她是從事SALSE方面的吧!! 我猜
果然沒錯,資策會的約聘人員,負責招生相關的事宜,
工作地點在南港,至於工作內容就沒深究了。

「怎麼今天只有妳們二個來」NANA問,
(果然沒錯,她是被騙來的)

「就其他人有事呀!! 像VICKY家裡有事…」SOPHIA說,
(回的好)

「那怎麼會找他來」NANA又問,
(很顯然是針對我這不速之客)

「平時就會約出來唱歌呀!!」SOPHIA說,
(假唱歌真聯誼是也)

好不容易有我說話的機會,趕緊接著說,
「是呀是呀!!」「SOPHIA很照顧我的」

「像之前就有一起去花蓮等地方玩」SOPHIA補足了我的存在感。

接下來的點歌及唱歌,場子完全熱不起來,
這情況倒是第一次遇到,
SOPHIA、NANA不是在講工作上的事,
要不然NANA就是用手機在上FB。

唱一輪下來卻發生了讓我不怎麼愉快的事,

「你怎麼都點女生的歌呀!! 而且都還會唱」NANA突然的冒出這句話,
「你一定是宅男」NANA很篤定的下了結語,

這….我不怎麼喜歡別人用宅男來形容我,
臉應該是當場垮下來吧!!

印象中NANA之後還說了好幾次同樣的話,也記不清楚了。
只能說是個不知死活的傢伙!!

快點唱完走人吧!! 我心中只剩這樣的想法。

結帳時….
在來之前本打算由我來出就好,只是看這情況又沒說是相親,我還是裝死就好。

故事還沒結束喔!!
就在大廳準備回家時,因天色已晚,
身為邀請人的SOPHIA當然要顧好NANA的安全,
要怎麼回家呢?計程車?錯!!
NANA準備打電話回家叫爸爸來載。

這…公主病來著吧!!

NANA還補上一句,「上次也是這樣,叫我爸從家裡開車來載我」
「因為我是獨女呀!!」

嚇!! 好裡家在….這女生碰不得的。

動怒

如果只能靠著職位壓人,對著PG說:「我是SA還是你是SA,照我說的做就對了!!」
這麼做是褻瀆SA這個職位;
若還是個被PG考倒的SA,那只能對他說:「資訊業是很危險的,速速離去吧!!」

————————-
該位同事是個PM等級的SA,輝煌事績我就不多說,
不是個稱職的PM(詳”我的FB人生”裡面提到那位很天的PM)
而這次更讓我否定掉他SA的能力。

~其一~
一次上班時間,我聽到該位SA抱怨起大陸的某位PG,
說他問題怎麼那麼多,跟他說照著我的方式做就好,
還在那爭論說這樣的作法和原來的方式沒有差別。

「到底是你是SA還是我是SA呀!! 照著我的方式去做就好」

一聽到這句話….雖然不關我事,但卻讓我怒了….
再怎麼SA都不該對PG說出這樣的話,
SA的責任不就是釐清問題嗎?
不回答問題,僅要求對方照著自己的方式做。

運用權勢壓人…這是哪門子的八股作風。

還記得公司的政策是希望提升大陸那的能力,做SD或是SA的工作,
但現在?PG有疑惑,SA叫他不要問太多,
然後去和PG的頭頭說,叫那位PG話不要那麼多….

如果我是PG,會當場回嗆,「沒路用SA,被考倒就見笑轉生氣」

~其二~
這的SA就像橋樑般的角色,聯繫著大陸PG和客戶需求的往來,
或許是因為負責的事相對多,無法一一過濾,
中間的傳達就像過水一樣地,MAIL轉寄、CC來CC去。

果不期然出問題了!!

客戶反問說,為何規格書就有寫的問題還拿來問?
這不信任感也造成客戶認為程式有問題自己拿來改會比較快。

客戶的長官來問了,為什麼有找外包協助,但他們還是自己改程式,
檢討會議….檢討報告….一一而來…

該位SA生氣了,他覺得是大陸那的問題,
沒好好處理問題,老是犯低級的錯誤。

他發飆了,向大陸那的領導說你們的PG有多糟多糟…

就像人踢狗,狗咬貓,貓捉老鼠,老鼠咬蟑螂,蟑螂去撞牆之間的關係一樣,
一環接著一環。

「沒那個肚子就別吃那個瀉藥」我想這麼對那位SA說。
既然你是SA,又是溝通的橋樑,就要扛些責任,而不是把責任全往外推。

但以我這麼鄉愿的性格,對方是前輩,這些話是不敢說的,我還是在一旁當鄉民看戲就好XD

[轉貼]T-SQL — Common Table Expression (CTE) 教學重點筆記

http://kkbruce.blogspot.com/2011/01/t-sql-common-table-expression-cte.html

 

重點筆記:

  • 可以把CTE當成”Temp View”
  • 如果在Store Procedure使用CTE,會造成每次執行都會re-compiler,效能低落
  • 資料集未以Table存放於Database時,適合用CTE
  • View通常用來分解大型查詢,如果只用一次,那View不是好辦法
  • 子查詢只能從所在的”陳述式”存取,如果有多個相同的子查詢,必須含重覆程式碼,難閱讀及維護
  • CTE能在同批次下,重覆使用(像View一樣)
  • CTE只能用於其後第一個陳述式(Select, Insert, Delete, Update),此陳述式可多次取用CTE
  • CTE後面可接另一個CTE,使用逗號(,)

 

[轉貼]關於CTE

SQL – 使用 一般資料表運算式 CTE (Common Table Expression)

早期可以透過暫存資料 表(# 或 ##)或者 table 來存放資料,現在也可以使用 一般資料表運算式 CTE (Common Table Expression) 來暫存資料。雖然 CTE 的查詢是使用 Select 查詢,但是依照 MSDN 的說明,仍有一些限制,那就是在 CTE 中不可以使用以下的子句:

1.COMPUTE 或 COMPUTE BY
2.ORDER BY (除非指定了 TOP 子句)
3.INTO
4.含有查詢提示的 OPTION 子句
5.FOR XML
6.FOR BROWSE

以下就來實作一些 CTE 的範例…

範例一:單一的 CTE 用法

WITH OrdersTable (訂單ID, 客戶ID, 員工ID) as
(
Select OrderID, CustomerID, EmployeeID
from dbo.Orders
)

Select *
From OrdersTable

範例二:兩個 CTE 作 Join

WITH OrdersTable (訂單ID, 客戶ID, 員工ID) as
(
Select OrderID, CustomerID, EmployeeID
from dbo.Orders
),
OrderDetailsTable as
(
Select OrderID as ‘訂單ID’, ProductID as ‘產品ID’, UnitPrice as ‘價格’
from dbo.[Order Details]
)

Select *
From OrdersTable A inner join OrderDetailsTable B
on A.訂單ID = B.訂單ID

範例三:CTE 遞迴 (參考:黑暗大的部落格文章)

資料清單

Code:

–如果CTE的WITH不在第一列, 前方要加上;
;WITH 公司組織結果(部門名稱, 直屬部門, 層級, 排序欄位)
AS
(
–Recursive CTE分為兩個部分, 第一部分為Anchor Member
–指不會被遞迴呼叫到的部分
SELECT 部門名稱, 直屬部門, 0, CONVERT(nvarchar(128), 部門ID)
FROM dbo.公司組織 WHERE 直屬部門=N’ROOT’

UNION ALL

–UNION ALL後方的部分稱為Recursive Member, 會在遞迴過程中反覆執行,
–直到無任何查詢結果為止
SELECT P.部門名稱, P.直屬部門, B.層級+1,
CONVERT(nvarchar(128), B.排序欄位 + ‘-‘ + CONVERT(nvarchar(128), P.部門ID))
FROM dbo.公司組織 P, 公司組織結果 B
WHERE P.直屬部門=B.部門名稱
)
SELECT (REPLICATE(‘       ‘, 層級) + 部門名稱) as ‘部門名稱’, 層級, 排序欄位
FROM 公司組織結果
ORDER BY 排序欄位

另一個 CTE 遞迴範例 (參考:Journey to SQL Authority with Pinal Dave)

Code:

USE AdventureWorks
GO
WITH Emp_CTE AS (
–找出 ManagerID 為 NULL 的資料當作 Anchor Member
SELECT EmployeeID, ContactID, LoginID, ManagerID, Title, BirthDate
FROM HumanResources.Employee
WHERE ManagerID IS NULL

UNION ALL

–之後以 Anchor Member 為依據遞迴查詢
SELECT e.EmployeeID, e.ContactID, e.LoginID, e.ManagerID, e.Title, e.BirthDate
FROM HumanResources.Employee e
INNER JOIN Emp_CTE ecte ON ecte.EmployeeID = e.ManagerID
)
SELECT *
FROM Emp_CTE
GO

 

[轉貼]SQL建立DB LINK的方法

原文網址


--Add DB Link Server
EXEC sp_addlinkedserver
@server = 'F6', --Server Name
@srvproduct = 'MS SQL',
@datasrc = '192.168.1.1' , --Server IP
@provider = 'SQLNCLI'

--Remove DB Link Server
EXEC sp_dropserver
@server = 'F6' --Server Name

--Add Login User and Password
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'F6' , --Server Name
@useself = 'false' ,
@locallogin = NULL ,
@rmtuser = 'sa' , --User
@rmtpassword = 'sasa' --Password
--Add DB Link Server
EXEC sp_addlinkedserver
@server = 'F6', --Server Name
@srvproduct = 'MS SQL',
@datasrc = '192.168.1.1' , --Server IP
@provider = 'SQLNCLI'

--Remove DB Link Server
EXEC sp_dropserver
@server = 'F6' --Server Name

--Add Login User and Password
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'F6' , --Server Name
@useself = 'false' ,
@locallogin = NULL ,
@rmtuser = 'sa' , --User
@rmtpassword = 'sasa' --Password

--Query DB Link Server
select * from sys.servers
--Query DB Link Server
select * from sys.servers

--Query Login User
select * from sys.linked_logins
--Query Login User
select * from sys.linked_logins

--Query DB Link Data
select * from [F6].[database].[dbo].[table]
--select * from [server name].[database name].[owner name].[table name]

--Query DB Link Data
select * from [F6].[database].[dbo].[table]
--select * from [server name].[database name].[owner name].[table name]

小人物 大公司 續一

加班絕對是場揮之不去的夢魘

駐點開始….,但正常上下班的日子過沒一個月,

交付大陸的程式回來了!!
畫面流程有問題!!
電文測試不通!!

解決問題就是我的專業…..自信滿滿的我,
為解問題,加班無法避免…..認真負責的我.

跟大陸合作就是會遇到這樣的問題,我已有這心理建設了.

但沒想到事情不是想像中的那麼簡單~~~

大陸PG單靠著SA寫出的SPEC撰寫程式,
而這SPEC其實台灣的SA還寫的很心虛,
「我們開出來的規格真的可以被CODE出來嗎?」

心裡存在疑惑的SA + 對程式一知半解的PG = 架構零散的程式

平台架構沒有事前訓練,這是其一,
規格書的開法並沒有一個統一的例子,這是其二,
而這兩個就成了程式不穩定的因子.

PG的理解下,自作主張的少傳了些值,表面上看起來程式是OK了,
但測試幾個步驟下來,資料錯了,流程錯了,
麻煩的BUG一再的發生….

SA只好開DEBUG去逐行的去驗証程式….
USER的IR單一張張的開,時間緊迫,
一個星期…二個星期過去….
這樣一直改下去不是辦法,
SA向上表明程式的整個流程需重新整理一遍,這是個大工程,
但這是唯一的解決方法.

花了一個連續假期,PM兼平台組LEADER把整個流程順過一遍,
總算才步入軌道….

這當中,大陸PG對專案的幫助其實不高,
我們怕他們改錯程式,我們怕他們因修改同支程式而把SVN上的程式給蓋掉,
而大陸改的時效也不夠快….

最後,我們自己動手.

為什麼每個和大陸合作的專案的會是這樣的結果呢?