功能我试图添加到我的DB2存储过程:
Select a MIN() date from a joined table column.
IF there was more than one row in this joined table, append a " * " to the date.
谢谢,非常感谢任何帮助或指导。
答案 0 :(得分:1)
目前尚不清楚需要哪种DB2风格,也不清楚是否有任何建议。这适用于DB2 for i:
SELECT
T1.joinCol1,
max( T2.somedateColumn ),
count( t2.somedateColumn ),
char(max( T2.somedateColumn )) concat case when count( T2.somedateColumn )>1 then '*' else '' end
FROM joinFile1 t1 join joinFile2 t2
on joinCol1 = joinCol2
GROUP BY T1.joinCol1
ORDER BY T1.joinCol1
SQL非常通用,因此它应该转换为许多环境和版本。
根据需要替换表名和列名。这里的COUNT()实际上是从JOIN计算行而不是特定日期出现的次数。如果需要重复日期计数,则还需要对此示例进行一些更改。
答案 1 :(得分:0)
希望这有帮助
说我有结果
1 Jeff 1
2 Jeff 333
3 Jeff 77
4 Jeff 1
5 Jeff 14
6 Bob 22
7 Bob 4
8 Bob 5
9 Bob 6
这里值1重复两次(在3列中)
因此,此查询将计数与*以及与其连接的
一起计为2
SELECT A.USER_VAL,
DECODE(A.CNT, '1', A.CNT, '0', A.CNT, CONCAT(A.CNT, '*')) AS CNT
FROM (SELECT DISTINCT BT.USER_VAL, CAST(COUNT(*) AS VARCHAR2(2)) AS CNT
FROM SO_BUFFER_TABLE_8 BT
GROUP BY BT.USER_VAL) A