0

これが私のテーブルです

          UPC を表示
0 0553406259120
0 0753406259120
1 0753406259120
1 0453406259120

お気付きのように、行 2 と行 3 の UPC は同じです。display = 0 で upc が重複しているすべての行を削除したいと思います。したがって、私のテーブルでは、行 2 のみを削除したいと考えています。これまでのところ、動作しない私のコールドフュージョン コードは次のとおりです。ご意見をお聞かせください。

<cfquery name="GetData" datasource="#Application.ds#" dbtype="ODBC" username="#Application.UserName#" password="#Application.Password#">
DELETE UPC
FROM products
WHERE DISPLAY = 0
GROUP BY UPC  
HAVING COUNT(*)>1
</cfquery>
4

2 に答える 2

3

UPC同じであるDisplayが異なる すべての行を削除すると仮定します。

DELETE FROM Products as a
WHERE display = 0
AND EXISTS (SELECT '1'
            FROM Products as b
            WHERE b.display <> 0
            AND b.upc = a.upc)

これはすべての RDBMS で機能しUPC、同じでDisplayコードが異なるすべての行を削除します。

于 2012-04-23T22:22:23.537 に答える
0
DELETE FROM Products
WHERE DISPLAY = 0 
AND UPC in (SELECT UPC
            FROM Products
            GROUP BY UPC
            HAVING COUNT(UPC)>1)
于 2012-04-23T22:36:15.317 に答える