(有没有办法编写 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 中为空的记录。所以我想要的是,如果发生这种情况,然后执行只显示可用数据的新 SQL 语句。
类似于 ... if sql1 <> "" then execute sql1 else execute sql2 end if
非常感谢您
(已编辑)根据下面的答案,我选择了“如果不存在”来解决这个问题,方法如下:
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 技能非常有限。所以你能帮我解决这个问题吗..非常感谢。