zu Netezza DB anzupassen ich Abfrage konvertieren müssen fallowing (wie NOT IN (subquery) wird nicht von Netezza unterstützt):Konvertieren IN Abfrage NICHT LEFT JOIN
UPDATE table1 t1 SET t1.deal_type=t2.deal_type
FROM table2 t2
WHERE t1.id_col=t2.id_col
AND t1.price=t2.price
AND t1.id_col2=t2.id_col2
AND t2.price NOT IN (
SELECT st1.price
FROM table1 st1, table2 st2
WHERE st1.id_col=st2.id_col
AND st1.price=st2.price
AND st1.id_col2=st2.id_col2
AND st1.id_col=t1.id_col
AND t2.deal_type=st2.deal_type
GROUP BY st1.id_col, st1.price, st1.id_col2, st2.deal_type
HAVING COUNT (*)>1);
ich mit LEFT versucht JOIN aber nicht alle Datensätze zurückgegeben:
UPDATE table1 t1 SET t1.deal_type = t2.deal_type
FROM table2 t2
LEFT JOIN
(SELECT st1.price, st1.id_col, st2.deal_type
FROM table1 st1, table2 st2
WHERE st1.id_col=st2.id_col
AND st1.price=st2.price
AND st1.id_col2=st2.id_col2
GROUP BY st1.id_col, st1.price, st1.id_col2, st2.deal_type
HAVING COUNT (*)>1) subq ON (subq.id_col=t1.id_col
AND t2.deal_type=subq.deal_type)
WHERE
t1.id_col=t2.id_col
AND t1.price=t2.price
AND t1.id_col2=t2.id_col2
subq.price is null
Alle Vorschläge, bei denen ich falsch lag. oder jede andere Art und Weise NICHT IN Hexe zu arbeiten arround wird nicht von Netezza unterstützt
Sind Sie sicher, dass 'nICHT IN' nicht unterstützt wird (ich würde sehr überrascht sein), oder ist es einfach, dass Sie keine *** korrelierten verwenden *** Unterabfrage mit 'NOT IN'? Großer Unterschied. Was ist die genaue Fehlermeldung, die Sie mit Ihrer ersten Aussage erhalten? – sstan