我有点卡住了。我手头没有当前的 SQL,但我会尽量说清楚。假设我有一张学生 ID 表以及课程编号和成绩。我只想返回成绩不等于 A 的学生。我不想要不等于 A 的行,但我试图找到所有没有关联 A 成绩的学生 ID,否则学生至少有一个 A不会被退回。
我该如何解决这个问题?我对 SQL 很陌生。谢谢
编辑:好的,现在我有了实际的 SQL,我可以放弃我可怕的类比了。
SELECT ALL
ITEMS.QTY_ONHAND AS QTY_ONHAND,
ITEMS.ITEM_ID AS ITEM_ID_I0,
MEDORDER.MO_STAT AS MOMO_STAT,
UPPER(ITEMS.ITEM_ID) AS ITEM_ID_IC,
ITEMS.RX_DISP AS RX_DISP,
OMNIS.OMNI_ID AS OMNI_ID,
MEDORDER.ITEM_ID AS MOITEM_ID
FROM ITEMS ITEMS,
MEDORDER MEDORDER,
OMNIS OMNIS,
"PATIENTS" PATIENTS
WHERE (ITEMS.OMNI_STID = OMNIS.OMNI_STID) AND
(PATIENTS.PAT_ID = MEDORDER.PAT_ID) AND
(OMNIS.AREA = PATIENTS.AREA) AND (UPPER(ITEMS.ITEM_NAME) LIKE '%Doxycycline%'
AND MEDORDER.ITEM_ID = UPPER(ITEMS.ITEM_ID)
AND MEDORDER.MO_STAT='A')
ORDER BY ITEMS.QTY_ONHAND DESC, OMNIS.OMNI_ID, MEDORDER.ITEM_ID
我这里有一个位置,omni_id。我的查询正在查找具有此 item_id 的每个omni_id。这将为每个omni_id 返回多个结果,这些结果对应于同一item_id 的多个medorders。我想要做的,只是返回对于任何 medorder.mo_stat 等于 'A' 的结果为 0 的 omni_ids。例如,omni_id 3W 将有 3 个返回,其中 medorder_mo_stat 等于 A、C 和 C。另一个是 4S,其 medorder.mo_stats 为 C、C、C。我只希望我的查询返回该 4S 组,因为它没有“A”的medorder.mo_stats。
抱歉解释不好..我现在正在处理几个项目,而且我的 SQL-fu 不是很强大,我不确定如何实施以下解决方案来获得我想要的东西。
提前致谢