この例では、フィールドに特定の文字列を合計したいと思いPAYROLL_PAYMONTH
ます。たとえば、フィールド内の「HELLO」の数を数えて、グループで表示します。
-- DATA
EMP_SURNAME PAYROLL_PAYYEAR PAYROLL_PAYMONTH
X 1999 JAN
X 1999 JAN
X 1999 FEB
-- OUTPUT
EMP_SURNAME PAYROLL_PAYYEAR JAN FEB MAR
X 1999 2 1 0
フィールド内の同じ文字列をカウントして表示するために、FirebirdのSQL Managerを使用して、Firebird 3でグループ選択手順を作成しました
CREATE PROCEDURE PAID_LISTING(
SORT_PAYROLL_YEAR VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE ISO8859_1)
RETURNS(
EMP_SURNAME VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE ISO8859_1,
PAYROLL_PAYYEAR VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE ISO8859_1,
PAYROLL_MON_JAN VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE ISO8859_1)
AS
BEGIN
FOR
SELECT
B.EMP_SURNAME,
A.PAYROLL_PAYYEAR,
COUNT (A.PAYROLL_PAYMONTH)
FROM PAYROLL A, EMP B
WHERE A.EMP_PK = B.EMP_PK AND A.PAYROLL_YEAR =: SORT_PAYROLL_YEAR
GROUP BY
B.EMP_SURNAME,
A.PAYROLL_PAYYEAR
ORDER BY B.EMP_SURNAME ASC
INTO
:EMP_SURNAME,
:PAYROLL_PAYYEAR,
:PAYROLL_MON_JAN
DO
BEGIN
SUSPEND;
END
END;
しかし、それは私が望む結果ではありません。次はどうする?