我需要验证从多联接查询返回的数据是正确的。
此查询将在经过验证的系统中运行,我们需要证明其返回的数据正确。
有人告诉我我们需要运行查询,以便测试每个联接。
这是我的查询:
SELECT
DISTINCT
tph.PROJECT,
p.T_PH_STUDY_TYPE,
p.PROTOCOL_TEMPLATE,
p.C_ISEPAGLP,
p.C_GLP_STUDYNAME,
tph.STUDY_SITE,
p.T_PH_MATERIAL_TYPE,
p.C_STUDY_YEAR,
p.T_PH_COMMENT,
tph.BATCH_REFERENCE,
tph.PRODUCT,
tph.ITEM_CODE,
tph.PRODUCTION_DATE,
tph.BATCH_SIZE,
tph.C_VESSEL,
tph.C_VENDOR_BATCH,
tph.C_SUPPLIER,
tph.PACKAGING_TYPE,
tph.C_FILL_QTY,
tph.PACKAGING_DESCRIPTION,
tph.C_EXPIRY_DATE,
tph.C_FILL_UNITS,
tph.C_PACKAGING_LINE,
tph.C_CONTAINER_PART_NO,
tph.C_CONTAINER_DESC,
tph.C_CLOSURE_PART_NO,
tph.C_CLOSURE_DESC,
tph.C_SUBSTRATE_PART_NO,
tph.C_SUBSTRATE_DESC,
tph.C_FILM_SEAL_PART_NO,
tph.C_FILM_SEAL_DESC,
p.STATUS ,
s.DATE_STARTED,
t.ANALYSIS,
t.VERSION,
s.Sample_Number
FROM SAMPLE s
INNER JOIN Project p ON s.PROJECT = p.NAME
INNER JOIN T_PH_TEST_ARTICLE tph ON tph.PROJECT = p.NAME
INNER JOIN TEST t ON t.SAMPLE_NUMBER = s.SAMPLE_NUMBER
WHERE (###) ORDER BY 36, 34, 35 ASC
我正在考虑通过从每个表中选择一个参数以及其他表来测试查询。换句话说,进行组合计算。
测试这种查询的最有效(最简单)方法是什么?
答案 0 :(得分:0)
我当时正在考虑通过从中选择一个参数来测试查询 每个表,以及其他表。换一种说法 运行组合计算。
测试这种查询的最有效(最简单)方法是什么?
一个想法可能是使用WITH ... AS (..)
构造,或多或少像
WITH expected_results AS (
[expected_results]
)
SELECT
needed_query.*
FROM
expected_results
INNER JOIN (
[test_query]
) AS needed_query
ON
[filter_check]
查看简单的demo。
是的,我知道数据库在测试中是PostgreSQL,该查询在Oracle中也应该可以正常工作,但是您需要更改CTE查询以从DUAL