- 浏览: 87857 次
- 性别:
- 来自: 厦门
最新评论
-
zhengyong7232:
SELECT t.province,DECODE(landsc ...
列转行 -
meepo3927:
不是特么很懂
列转行
select *
from (select mtab.*, rownum row_no
from (select distinct decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)) name,
null servPkgID,
null srevPkgName,
wi.work_item_id itemId,
wi.work_item_name itemName,
csp.serv_provider_name servProv,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)) stDt,
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'),
'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'),
'EOT'),
nvl(to_char(mss.end_value), 'EOT')) edDt,
decode(mss.trigger_typ_id,
5,
(select ef.freq_desc
from cost_event_frequency ef
where ef.freq_id = mss.freq_id),
6,
(select et.event_typ_name
from cost_event_typ et
where et.event_typ_id =
mss.event_typ_id),
1,
'FFS',
2,
'AH',
3,
'AS',
4,
'FFH',
'') periodicity,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
'') sequence,
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA') refESN,
(select stt.trigger_typ_name
from COST_SERV_TRIGGER_TYP stt
where stt.trigger_typ_id =
mss.trigger_typ_id) frequency,
null servType,
decode(mv.mdl_ver_typ_id, 1129, 'Y', 'N') crRenegInd,
decode(mv.mdl_ver_typ_id, 1127, 'Y', 'N') crStartInd,
decode(mv.mdl_ver_typ_id, 1130, 'Y', 'N') crModelInd,
decode(mv.mdl_ver_typ_id, 1150, 'Y', 'N') crActualInd,
decode(mv.mdl_ver_typ_id, 1087, 'Y', 'N') crOpDataInd,
decode(mv.mdl_ver_typ_id, 1151, 'Y', 'N') crFutureInd,
decode(mv.mdl_ver_typ_id, 1060, 'Y', 'N') crWorkInd,
decode(mv.mdl_ver_typ_id, 1090, 'Y', 'N') reTain1Ind,
decode(mv.mdl_ver_typ_id, 1091, 'Y', 'N') reTain2Ind,
decode(mv.mdl_ver_typ_id, 1094, 'Y', 'N') reTain3Ind,
decode(mv.mdl_ver_typ_id, 1095, 'Y', 'N') reTain4Ind
from cost_model_ver mv,
cost_event_service es,
cost_mdl_standalone_service mss,
cost_work_item wi,
cost_work_item_ctlg wic,
cost_work_item_category cwic,
cost_service_provider csp
where mv.mdl_id = 12991468
and es.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_standalone_serv_id = es.mdl_standalone_serv_id
and wi.work_item_id = mss.work_item_id
and wic.work_item_id = wi.work_item_id
and wic.ctlg_ver_id =
cosmos_config_pkg.GET_CATALOG_VERSION(mv.mdl_ver_id)
and cwic.work_item_category_id = wi.work_item_category_id
and csp.serv_provider_id = mss.serv_provider_id
and es.actualize_ind = 'P'
and mv.mdl_ver_typ_id in
(1060, 1087, 1127, 1129, 1130, 1150, 1151)
and mss.equip_id is null) mtab)
where row_no < = 100and row_no > 0
select distinct decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)) name,
null servPkgID,
null srevPkgName,
wi.work_item_id itemId,
wi.work_item_name itemName,
csp.serv_provider_name servProv,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)) stDt,
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
nvl(to_char(mss.end_value), 'EOT')) edDt,
decode(mss.trigger_typ_id,
5,
(select ef.freq_desc
from cost_event_frequency ef
where ef.freq_id = mss.freq_id),
6,
(select et.event_typ_name
from cost_event_typ et
where et.event_typ_id = mss.event_typ_id),
1,
'FFS',
2,
'AH',
3,
'AS',
4,
'FFH',
'') periodicity,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
'') sequence,
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA') refESN,
(select stt.trigger_typ_name
from COST_SERV_TRIGGER_TYP stt
where stt.trigger_typ_id = mss.trigger_typ_id) frequency,
null servType,
max(decode(mv.mdl_ver_typ_id, 1129, 'Y', 'N')) crRenegInd,
max(decode(mv.mdl_ver_typ_id, 1127, 'Y', 'N')) crStartInd,
max(decode(mv.mdl_ver_typ_id, 1130, 'Y', 'N')) crModelInd,
max(decode(mv.mdl_ver_typ_id, 1150, 'Y', 'N')) crActualInd,
max(decode(mv.mdl_ver_typ_id, 1087, 'Y', 'N')) crOpDataInd,
max(decode(mv.mdl_ver_typ_id, 1151, 'Y', 'N')) crFutureInd,
max(decode(mv.mdl_ver_typ_id, 1060, 'Y', 'N')) crWorkInd,
max(decode(mv.mdl_ver_typ_id, 1090, 'Y', 'N')) reTain1Ind,
max(decode(mv.mdl_ver_typ_id, 1091, 'Y', 'N')) reTain2Ind,
max(decode(mv.mdl_ver_typ_id, 1094, 'Y', 'N')) reTain3Ind,
max(decode(mv.mdl_ver_typ_id, 1095, 'Y', 'N')) reTain4Ind
--,mdl_ver_typ_id
from cost_model_ver mv,
cost_event_service es,
cost_mdl_standalone_service mss,
cost_work_item wi,
cost_work_item_ctlg wic,
cost_work_item_category cwic,
cost_service_provider csp
where mv.mdl_id = 12991468
and es.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_standalone_serv_id = es.mdl_standalone_serv_id
and wi.work_item_id = mss.work_item_id
and wic.work_item_id = wi.work_item_id
and wic.ctlg_ver_id =
cosmos_config_pkg.GET_CATALOG_VERSION(mv.mdl_ver_id)
and cwic.work_item_category_id = wi.work_item_category_id
and csp.serv_provider_id = mss.serv_provider_id
and es.actualize_ind = 'P'
and mv.mdl_ver_typ_id in (1060, 1087, 1127, 1129, 1130, 1150, 1151)
and mss.equip_id is null
group by decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)),
null,
null,
wi.work_item_id,
wi.work_item_name,
csp.serv_provider_name,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)),
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
nvl(to_char(mss.end_value), 'EOT')),
mss.trigger_typ_id,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
''),
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA'),
mss.trigger_typ_id,
null,
mss.freq_id,
mss.event_typ_id
from (select mtab.*, rownum row_no
from (select distinct decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)) name,
null servPkgID,
null srevPkgName,
wi.work_item_id itemId,
wi.work_item_name itemName,
csp.serv_provider_name servProv,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)) stDt,
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'),
'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'),
'EOT'),
nvl(to_char(mss.end_value), 'EOT')) edDt,
decode(mss.trigger_typ_id,
5,
(select ef.freq_desc
from cost_event_frequency ef
where ef.freq_id = mss.freq_id),
6,
(select et.event_typ_name
from cost_event_typ et
where et.event_typ_id =
mss.event_typ_id),
1,
'FFS',
2,
'AH',
3,
'AS',
4,
'FFH',
'') periodicity,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
'') sequence,
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA') refESN,
(select stt.trigger_typ_name
from COST_SERV_TRIGGER_TYP stt
where stt.trigger_typ_id =
mss.trigger_typ_id) frequency,
null servType,
decode(mv.mdl_ver_typ_id, 1129, 'Y', 'N') crRenegInd,
decode(mv.mdl_ver_typ_id, 1127, 'Y', 'N') crStartInd,
decode(mv.mdl_ver_typ_id, 1130, 'Y', 'N') crModelInd,
decode(mv.mdl_ver_typ_id, 1150, 'Y', 'N') crActualInd,
decode(mv.mdl_ver_typ_id, 1087, 'Y', 'N') crOpDataInd,
decode(mv.mdl_ver_typ_id, 1151, 'Y', 'N') crFutureInd,
decode(mv.mdl_ver_typ_id, 1060, 'Y', 'N') crWorkInd,
decode(mv.mdl_ver_typ_id, 1090, 'Y', 'N') reTain1Ind,
decode(mv.mdl_ver_typ_id, 1091, 'Y', 'N') reTain2Ind,
decode(mv.mdl_ver_typ_id, 1094, 'Y', 'N') reTain3Ind,
decode(mv.mdl_ver_typ_id, 1095, 'Y', 'N') reTain4Ind
from cost_model_ver mv,
cost_event_service es,
cost_mdl_standalone_service mss,
cost_work_item wi,
cost_work_item_ctlg wic,
cost_work_item_category cwic,
cost_service_provider csp
where mv.mdl_id = 12991468
and es.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_standalone_serv_id = es.mdl_standalone_serv_id
and wi.work_item_id = mss.work_item_id
and wic.work_item_id = wi.work_item_id
and wic.ctlg_ver_id =
cosmos_config_pkg.GET_CATALOG_VERSION(mv.mdl_ver_id)
and cwic.work_item_category_id = wi.work_item_category_id
and csp.serv_provider_id = mss.serv_provider_id
and es.actualize_ind = 'P'
and mv.mdl_ver_typ_id in
(1060, 1087, 1127, 1129, 1130, 1150, 1151)
and mss.equip_id is null) mtab)
where row_no < = 100and row_no > 0
select distinct decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)) name,
null servPkgID,
null srevPkgName,
wi.work_item_id itemId,
wi.work_item_name itemName,
csp.serv_provider_name servProv,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)) stDt,
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
nvl(to_char(mss.end_value), 'EOT')) edDt,
decode(mss.trigger_typ_id,
5,
(select ef.freq_desc
from cost_event_frequency ef
where ef.freq_id = mss.freq_id),
6,
(select et.event_typ_name
from cost_event_typ et
where et.event_typ_id = mss.event_typ_id),
1,
'FFS',
2,
'AH',
3,
'AS',
4,
'FFH',
'') periodicity,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
'') sequence,
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA') refESN,
(select stt.trigger_typ_name
from COST_SERV_TRIGGER_TYP stt
where stt.trigger_typ_id = mss.trigger_typ_id) frequency,
null servType,
max(decode(mv.mdl_ver_typ_id, 1129, 'Y', 'N')) crRenegInd,
max(decode(mv.mdl_ver_typ_id, 1127, 'Y', 'N')) crStartInd,
max(decode(mv.mdl_ver_typ_id, 1130, 'Y', 'N')) crModelInd,
max(decode(mv.mdl_ver_typ_id, 1150, 'Y', 'N')) crActualInd,
max(decode(mv.mdl_ver_typ_id, 1087, 'Y', 'N')) crOpDataInd,
max(decode(mv.mdl_ver_typ_id, 1151, 'Y', 'N')) crFutureInd,
max(decode(mv.mdl_ver_typ_id, 1060, 'Y', 'N')) crWorkInd,
max(decode(mv.mdl_ver_typ_id, 1090, 'Y', 'N')) reTain1Ind,
max(decode(mv.mdl_ver_typ_id, 1091, 'Y', 'N')) reTain2Ind,
max(decode(mv.mdl_ver_typ_id, 1094, 'Y', 'N')) reTain3Ind,
max(decode(mv.mdl_ver_typ_id, 1095, 'Y', 'N')) reTain4Ind
--,mdl_ver_typ_id
from cost_model_ver mv,
cost_event_service es,
cost_mdl_standalone_service mss,
cost_work_item wi,
cost_work_item_ctlg wic,
cost_work_item_category cwic,
cost_service_provider csp
where mv.mdl_id = 12991468
and es.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_ver_id = mv.mdl_ver_id
and mss.mdl_standalone_serv_id = es.mdl_standalone_serv_id
and wi.work_item_id = mss.work_item_id
and wic.work_item_id = wi.work_item_id
and wic.ctlg_ver_id =
cosmos_config_pkg.GET_CATALOG_VERSION(mv.mdl_ver_id)
and cwic.work_item_category_id = wi.work_item_category_id
and csp.serv_provider_id = mss.serv_provider_id
and es.actualize_ind = 'P'
and mv.mdl_ver_typ_id in (1060, 1087, 1127, 1129, 1130, 1150, 1151)
and mss.equip_id is null
group by decode(mss.equip_id,
null,
cosmos_config_pkg.GET_SiteName(mss.site_id),
cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.equip_id)),
null,
null,
wi.work_item_id,
wi.work_item_name,
csp.serv_provider_name,
decode(mss.trigger_typ_id,
5,
to_char(mss.start_dt, 'mm/dd/yyyy'),
6,
to_char(mss.start_dt, 'mm/dd/yyyy'),
to_char(mss.start_value)),
decode(mss.trigger_typ_id,
5,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
6,
nvl(to_char(mss.end_dt, 'mm/dd/yyyy'), 'EOT'),
nvl(to_char(mss.end_value), 'EOT')),
mss.trigger_typ_id,
decode(mss.trigger_typ_id,
5,
'NA',
6,
nvl(to_char(mss.event_occurence), 'ALL'),
1,
to_char(mss.freq_value),
2,
to_char(mss.freq_value),
3,
to_char(mss.freq_value),
4,
to_char(mss.freq_value),
''),
nvl(cosmos_config_pkg.GET_Equip_SerialName(mss.mdl_ver_id,
mss.ref_equip_id),
'NA'),
mss.trigger_typ_id,
null,
mss.freq_id,
mss.event_typ_id
发表评论
-
oracle嵌套循环的执行计划优化
2013-06-15 23:28 0嵌套循环连接处理的 ... -
Oracle体系结构详解
2013-06-11 23:03 0Oracle体系结构就是围 ... -
ORACLE的隔离级别
2013-03-19 17:39 864隔离级别(isolation level) l ... -
Oracle 悲观锁和乐观锁
2013-03-19 17:30 1027一.丢失更新 所有多用户环境中存在丢失更新,丢失更新 ... -
Oracle异常
2012-10-16 21:48 4189Oracle异常处理异常处理是考验一个应用 程序 健壮性的最好 ... -
列转行
2012-07-12 11:51 1123oracle一个表或者视图中 ... -
oracle--多行转为一行的连接手段
2012-04-13 21:58 1096今天遇到将多行转为一行的一个操作,多谢oracle开发板的 w ... -
利用Oracle分析函数实现多行数据合并为一行
2012-04-12 16:57 1256demo场景,以oracle自带库中的表emp为例: se ... -
ORACLE实现多行合并一行的SQL写法
2012-04-12 16:55 1111项目中遇到一个需求, ... -
Oracle合并多行为多列[转]
2012-04-12 16:39 1376oracle 如何聚合多行函数 在BEA论坛上看一位&quo ...
相关推荐
1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType
在上面的示例中,我们使用了 SUM 函数和 IF 语句来生成汇总行,并使用 GROUP BY 语句来分组。 MySQL 合并显示是将多个查询结果合并到一个查询结果的操作。例如,我们可以使用 UNION ALL 语句来将多个查询结果合并到...
mysql 中类似php switch case 的语句。 select xx字段, case 字段 when 条件1 then 值1 when 条件2 then 值2 ...group by isCheck 使用case when : select sum(redpackmoney) as stota, (CASE i
select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+''' then 比率 end) [比率]' from (select distinct 地区 from 表) as a select @sql...
今天群里有人问了个问题是这样的: 然后有群友是这样回答的 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下...
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...
59、select avg(sal) from emp where sal >1200 group by deptno having avg(sal) >1500 order by avg(sal) desc;--求出sal>1200的平均值按照deptno分组,平均值要>1500最后按照sal的倒序排列 60、select ename,...
SUM(CASE WHEN product = 'ProductA' THEN revenue ELSE 0 END) AS ProductA: 使用 CASE 语句将 product 列中的 ProductA 的 revenue 值聚合到新列 ProductA 中,如果不是 ProductA 则返回 0。 对 ProductB 和 ...
AS '多煤体', SUM(CASE e.bmdwdm WHEN e.bmdwdm THEN e.kkk ELSE 0 END) AS '合计' FROM (SELECT bmdwdm, khmkdm, COUNT(bmdwdm) AS kkk FROM tblkaosheng AS d GROUP BY bmdwdm, khmkdm) AS e INNER JOIN tblbmdw ...
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、--查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML; (003),数据库...
Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_...GROUP BY AREA_CODE; 2、使用
set @sum = @sum + @@error //如果有一天sql语句报错@@error将会记录为1 if@sum<> 0 //如果不为0,说明有SQL语句执行错误 begin rollback //将事务回滚到执行之前 end else begin commit //SQL语句执行...
from sys.database_files where type=0 group by type' go -------------------log size-------------------------------------- if exists (select * from tempdb.sys.all_objects where name like '#...
from KuChun t1 left join (select SellID, sum(sellnum)as snum,ProductType from Sell group by SellID,ProductType)t2 on t1.ShopID=t2.SellID and t1.ProductType=t2.ProductType order by t1.ShopID ...
在给定的部分内容中,我们可以看到一个经典的SQL面试题,即如何使用GROUP BY语句来统计分类结果。在这个问题中,我们需要统计每天的胜利和失败次数,可以使用以下SQL语句来实现: ```sql SELECT rq, SUM(CASE WHEN ...
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type ...
其中,聚合函数可以是 SUM、AVG、MAX、MIN 等,value_column 是要聚合的列,pivot_column 是要旋转的列,column_list 是要旋转的列名列表。 例如,在上面的实例中,我们可以使用 Pivot 语法将课程信息旋转为列名: ...
SELECT contract_no, AVG(act_receive_amt) FROM tamdk31 GROUP BY contract_no HAVING AVG(act_receive_amt)>100000; 7. 复合性查询: 复合性查询用于对数据进行复杂的筛选操作。例如: SELECT * FROM ttpct04 ...