iT邦幫忙

0

TIPTOP,SQL寫法疑問,簡單報表撰寫問題

  • 分享至 

  • xImage

如題有一簡單報表(p_query)裡面有兩個欄位都來自同一TABLE但是傳入參數不一樣要怎麼顯示?
範例敘述:
有一TABLE如下
碼別 - 序號 - 內容
G - 01 - 狀況碼01
G - 02 - 狀況碼02
A - 01 - 異常碼01
A - 02 - 異常碼02
問題:
簡單報表內有兩個地方同時攝取上面TABLE資料,一個攝取G.01 需要顯示"狀況碼01",另一個攝取A.02 要顯示"異常碼02"請問該如何撰寫?
**

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2019-04-09 09:49:49 檢舉
太簡單了所以連問題都不用放,大家都能解?
觀落陰...
淺水員 iT邦大師 6 級 ‧ 2019-04-09 10:37:15 檢舉
沒有東西就不會跳 error 。解決不了程式,就把程式解決。
were5159 iT邦新手 5 級 ‧ 2019-04-09 13:12:48 檢舉
打到一半不小心按到送出,沒注意到就去忙了,抱歉抱歉
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
tlcric
iT邦新手 5 級 ‧ 2019-04-10 11:01:02
最佳解答

你是要抓全部資料的話
select G.01 , A.02 from table;
如果你是想要抓G.01 ="狀況碼01" 跟 A.02="異常碼02"都符合的話
select G.01 , A.02 from table
where G.01 ="狀況碼01"
and A.02="異常碼02";

另外你可以先用簡易資料庫查詢p_dbqry先試看看語法

看更多先前的回應...收起先前的回應...
were5159 iT邦新手 5 級 ‧ 2019-04-10 17:10:47 檢舉

不是欸,情況如下一張報表裡面有兩個地方使用到同一個table的資料但是使用條件不一樣,EX:單號123 內容有01,跟02,我的報表想要列出-單號123 01是"狀況碼01" 02是"異常碼02"

tlcric iT邦新手 5 級 ‧ 2019-04-11 08:54:03 檢舉

你的報表是指p_query的報表嗎?
[內容]01.02跟[狀況碼]應該是不同欄位的資料,你先了解他們的欄位名稱是什麼

tlcric iT邦新手 5 級 ‧ 2019-04-11 09:03:38 檢舉

如果你所謂的"狀況碼01"跟"狀況碼02"並不是原本資料庫table裡面的資料,而是你要藉由碼別去判斷想要帶出來的資料的話,可以在p_query的欄位設定中修改單身,再要做判斷的欄位最後面勾選[資料轉換],再右邊action中有一個[資料轉換設定]按鈕進去設定你要顯示的"狀況碼01"跟"狀況碼02"

were5159 iT邦新手 5 級 ‧ 2019-04-17 09:51:33 檢舉

兩個是同一個Table,其實就是aooi301裡面的理由碼,只是同時用到兩個,有辦法分別去aooi301裡面抓說明嗎?01跟02是碼別,"狀況碼"、"異常碼"是說明

tlcric iT邦新手 5 級 ‧ 2019-04-22 13:52:29 檢舉

select azf01,azf02,azf03
from azf_file
where azf01="G"
and azf02="01"
union all
select azf01,azf02,azf03
from azf_file
where azf01="A"
and azf02="02"

0
yi741963
iT邦新手 5 級 ‧ 2019-04-10 14:06:51

小弟不才
因該是可以這樣寫

來自同一個欄位
select *
from (select CONCAT('狀況碼0',SUBSTR(t.Field1, 4)) from table t where t.Field1 like 'G-0%') t1
join (select CONCAT('異常碼0',SUBSTR(t.Field1, 4)) from table t where t.Field1 like 'A-0%' ) t2
on t1.PK = t2.PK

判斷A欄 抓B欄(同一列)
select *
from (select '狀況碼' || t.Field2 from table t where t.Field1 = 'G') t1
join (select '異常碼' || t.Field2 from table t where t.Field1 = 'A') t2
on t1.PK = t2.PK

CONCAT(A,B) 和 A || B 相同
不過注意效能 看資料多寡
有時候可以用程式解決反而會跑比較快

were5159 iT邦新手 5 級 ‧ 2019-04-10 17:11:50 檢舉

p_query 簡單報表 這樣不能寫QQ

0
gn00044255
iT邦新手 5 級 ‧ 2019-04-10 14:29:20

1.關鍵字switch
2.選我解決

我要發表回答

立即登入回答