如題有一簡單報表(p_query)裡面有兩個欄位都來自同一TABLE但是傳入參數不一樣要怎麼顯示?
範例敘述:
有一TABLE如下
碼別 - 序號 - 內容
G - 01 - 狀況碼01
G - 02 - 狀況碼02
A - 01 - 異常碼01
A - 02 - 異常碼02
問題:
簡單報表內有兩個地方同時攝取上面TABLE資料,一個攝取G.01 需要顯示"狀況碼01",另一個攝取A.02 要顯示"異常碼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先試看看語法
不是欸,情況如下一張報表裡面有兩個地方使用到同一個table的資料但是使用條件不一樣,EX:單號123 內容有01,跟02,我的報表想要列出-單號123 01是"狀況碼01" 02是"異常碼02"
你的報表是指p_query的報表嗎?
[內容]01.02跟[狀況碼]應該是不同欄位的資料,你先了解他們的欄位名稱是什麼
如果你所謂的"狀況碼01"跟"狀況碼02"並不是原本資料庫table裡面的資料,而是你要藉由碼別去判斷想要帶出來的資料的話,可以在p_query的欄位設定中修改單身,再要做判斷的欄位最後面勾選[資料轉換],再右邊action中有一個[資料轉換設定]按鈕進去設定你要顯示的"狀況碼01"跟"狀況碼02"
兩個是同一個Table,其實就是aooi301裡面的理由碼,只是同時用到兩個,有辦法分別去aooi301裡面抓說明嗎?01跟02是碼別,"狀況碼"、"異常碼"是說明
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"
小弟不才
因該是可以這樣寫
來自同一個欄位
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 相同
不過注意效能 看資料多寡
有時候可以用程式解決反而會跑比較快