0
首先讓我向您展示示例記錄。具有多個IN的複雜SQL語句
表:objekte
+--------+----------+---------+------------+
| objid | objidate | objmask | deletedate |
+--------+----------+---------+------------+
| 271136 | 54084960 | 4 | 0 |
| ... | ... | ... | ... |
+--------+----------+---------+------------+
表:objkeys
+----------+--------+------------+-------------------------------------+
| parentid | okeyno | okeyname | okeydata |
+----------+--------+------------+-------------------------------------+
| 1511160 | 1 | BelegNr. | 634685 |
| 1511160 | 2 | BELEGARTBK | oU = Lieferschein ohne Unterschrift |
+----------+--------+------------+-------------------------------------+
現在,這裏是我到目前爲止已經試過:
SELECT * FROM objekte
WHERE objid IN (
SELECT MIN(parentid) as parentid FROM objkeys
WHERE okeyname = 'BelegNr.'
GROUP BY okeydata
HAVING COUNT(okeydata) = 1
) AND objmask = '69' AND deletedate = '0' AND DATEADD(mi, objidate, '30.12.1899') >= DATEADD(day, -30, getdate())
預期輸出:
我要顯示所有OBJID從表objekte(objkeys.parentid = objekte.objid
),其中存在的okeyname "Belegn"
只有一條記錄,其中BELEGARTBK is "oU = Lieferschein ohne Unterschrift".
在我的SQL代碼,我可以顯示所有當前「獨特」的對象。但我目前無法過濾「BELEGARTBK」。有沒有簡單的方法來做到這一點?
我會建議創建你已經顯示有更大量數據的SQL小提琴。我很不清楚你可以爲'BelegNr.'和'BELEGARTBK'值重複多少'okeyname'。這個數據庫設計看起來不錯 –