Click here to Skip to main content
15,890,995 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I need to retrieve data filtered by the results of a calculated column - how?

INFORMIX:


SQL
SELECT
    TUP_TAG_NO AS TAG,
    (
        CASE
            (
                CASE (SELECT ttt_prnt_tag_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no) WHEN NULL THEN (SELECT MIN(pkc_cmpt_tag_no) FROM INTPKC_REC WHERE pkc_pkg_ctl_no = tup_itm_ctl_no GROUP BY pkc_pkg_ctl_no) ELSE (SELECT ttt_prnt_tag_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no) END )
                WHEN NULL
                THEN (SELECT TRIM(tag_mst_tag_no) FROM INTTAG_REC WHERE tag_itm_ctl_no = tup_itm_ctl_no)
                ELSE
                    (
                        CASE
                            (
                                SELECT tag_mst_tag_no
                                FROM
                                    INTTAG_REC
                                WHERE tag_itm_ctl_no =
                                                        (
                                                            CASE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                                WHEN NULL
                                                                THEN (SELECT MIN(pkc_cmpt_ctl_no) FROM INTPKC_REC WHERE pkc_pkg_ctl_no = tup_itm_ctl_no GROUP BY pkc_pkg_ctl_no)
                                                                ELSE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                            END
                                                        )
                            )
                            WHEN NULL
                            THEN (SELECT TRIM(atg_mst_tag_no) FROM INAATG_REC WHERE atg_itm_ctl_no =
                                                                                            (
                                                                                                CASE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                                                                    WHEN NULL
                                                                                                    THEN (SELECT MIN(pkc_cmpt_ctl_no) FROM INTPKC_REC WHERE pkc_pkg_ctl_no = tup_itm_ctl_no GROUP BY pkc_pkg_ctl_no)
                                                                                                    ELSE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                                                                END
                                                                                            )
                                )
                            ELSE
                            (
                                SELECT TRIM(tag_mst_tag_no)
                                FROM
                                    INTTAG_REC
                                WHERE tag_itm_ctl_no =
                                                        (
                                                            CASE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                                WHEN NULL
                                                                THEN (SELECT MIN(pkc_cmpt_ctl_no) FROM INTPKC_REC WHERE pkc_pkg_ctl_no = tup_itm_ctl_no GROUP BY pkc_pkg_ctl_no)
                                                                ELSE (SELECT ttt_itm_ctl_no FROM INTTTT_REC WHERE ttt_itm_ctl_no = tup_itm_ctl_no)
                                                            END
                                                        )
                            )
                        END
            )
        END
    ) AS MASTER_TAG,
FROM
    TRJTUP_REC,
    TRJTUD_REC,
    TRJTPH_REC,
    INRFSH_REC,
    ARRCUS_REC,
    TCTNAD_REC

WHERE
    `MASTER` = '123456'
Posted

1 solution

I'm not familiar with INFORMIX, but it is done in SQL Server as follows:
SQL
SELECT
	(100 - YearsOld) AS YearsRemaining
FROM People
WHERE
	(100 - YearsOld) > 0

That is, you enter the calculation in the WHERE clause.
 
Share this answer
 
Comments
MeritUSA 27-Sep-10 11:13am    
Reason for my vote of 5
Automatic vote of 5 for accepting answer.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900