(このステートメントがデータを取得できない場合(テーブルの一部がnullであったため)、他のSQLステートメントを使用するか、利用可能なデータのみを表示するSQLステートメントを作成する方法はありますか?)
以下に示す生産ロットと最新のアクティビティのそれぞれを表示するSQLステートメントがあります...
q_maxdate :
SELECT
tbl_pdtn_startup.pdtn_st_id,
tbl_production.pdtn_id,
tbl_product.pd_name
FROM
(
tbl_pdtn_startup
INNER JOIN tbl_product
ON tbl_pdtn_startup.pd_id = tbl_product.pd_id
)
INNER JOIN tbl_production
ON tbl_pdtn_startup.pdtn_st_id = tbl_production.pdtn_st_id;
このSQLと結合する
SELECT
q_maxdate.pdtn_st_id,
Sum(tbl_pdtn_sizecolor.pdtn_st_qty_est) AS SumOfpdtn_st_qty_est,
q_maxdate.MaxOfpdtn_date,
q_maxdate.pd_name,
q_maxdate.pdtn_st_pdNote,
q_maxdate.pd_id,
q_maxdate.MaxOfwk_stage,
q_maxdate.LastOflb_name,
q_maxdate.pdtn_st_date,
q_maxdate.pdtn_st_qty_act
FROM
q_maxdate
INNER JOIN tbl_pdtn_sizecolor
ON q_maxdate.pdtn_st_id=tbl_pdtn_sizecolor.pdtn_st_id
GROUP BY
q_maxdate.pdtn_st_id,
q_maxdate.MaxOfpdtn_date,
q_maxdate.pd_name,
q_maxdate.pdtn_st_pdNote,
q_maxdate.pd_id,
q_maxdate.MaxOfwk_stage,
q_maxdate.LastOflb_name,
q_maxdate.pdtn_st_date,
q_maxdate.pdtn_st_qty_act
ORDER BY
q_maxdate.pdtn_st_date DESC;
これの問題は、tbl_pdtn_startup にデータのみがあり、tbl_production に null があるレコードが表示されないことです。したがって、このケースが発生した場合、利用可能なデータのみを表示する新しい SQL ステートメントを実行する必要があります。
のようなもの ... if sql1 <> "" then sql1 を実行する else sql2 を実行する end if
どうもありがとうございます
(編集済み)以下の回答によると、次のように使用してこの問題を解決するために「IF NOT EXIST」を選択しました。
IF NOT EXISTS (SELECT q_maxdate.pdtn_st_id, Sum(tbl_pdtn_sizecolor.pdtn_st_qty_est) AS SumOfpdtn_st_qty_est, q_maxdate.MaxOfpdtn_date, q_maxdate.pd_name, q_maxdate.pdtn_st_pdNote, q_maxdate.pd_id, q_maxdate.MaxOfwk_stage, q_maxdate.LastOflb_name, q_maxdate.pdtn_st_date, q_maxdate.pdtn_st_qty_act
FROM q_maxdate INNER JOIN tbl_pdtn_sizecolor ON q_maxdate.pdtn_st_id=tbl_pdtn_sizecolor.pdtn_st_id
GROUP BY q_maxdate.pdtn_st_id, q_maxdate.MaxOfpdtn_date, q_maxdate.pd_name, q_maxdate.pdtn_st_pdNote, q_maxdate.pd_id, q_maxdate.MaxOfwk_stage, q_maxdate.LastOflb_name, q_maxdate.pdtn_st_date, q_maxdate.pdtn_st_qty_act
ORDER BY q_maxdate.pdtn_st_date DESC )
THEN SELECT tbl_pdtn_startup.pdtn_st_id, tbl_product.pd_name, tbl_pdtn_startup.pdtn_st_date
FROM (tbl_pdtn_startup INNER JOIN tbl_product ON tbl_pdtn_startup.pd_id = tbl_product.pd_id) INNER JOIN tbl_production ON tbl_pdtn_startup.pdtn_st_id = tbl_production.pdtn_st_id
GROUP BY tbl_pdtn_startup.pdtn_st_id, tbl_product.pd_name, tbl_pdtn_startup.pdtn_st_date
ORDER BY tbl_pdtn_startup.pdtn_st_date DESC
END
しかし、うまくいきませんでした。私の SQL スキルは非常に限られていました。それで、これを解決するのを手伝ってくれませんか..どうもありがとう。