2012-04-05 8 views
2

Ich bin in der Lage löschen Sie die Daten, die ich mit einer select-Anweisung möge:SQL: Wie Zeile Treffen Kriterien aus einer anderen Tabelle

SELECT InventoryUnitMeasure.ItemCode, 
     InventoryUnitMeasure.UPCCode, 
     InventoryItem.ItemName 
FROM InventoryUnitMeasure 
    INNER JOIN InventoryItem 
     ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

Ich versuche dann zu ändern, um die Spalte UpCode in Tabelle InventoryUnitMeasure zu löschen, wie so aber erhalte eine Fehlermeldung:

DELETE upccode from 
FROM dbo.InventoryUnitMeasure 
    INNER JOIN InventoryItem 
    ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

ich weiß, ich bin ein einfacher Fehler zu machen, aber ich kann es einfach nicht herausfinden, und ich habe versucht, Blick auf mehrere Standorte und mehrere suchen, aber ich kann nur sehen, wie ein Ganzes löschen Tabelle beim Beitritt und nicht nur eine Spalte.

Jede Hilfe würde sehr geschätzt werden.

Ich benutze SQL Server als DBMS.

+0

Und der Fehler ist ...? –

+1

Welches DBMS benutzen Sie? PostgreSQL? Orakel? DB2? SQL Server? –

+2

Versuchen Sie eine * Zeile * oder eine * Spalte * zu löschen? Das sind zwei sehr unterschiedliche Dinge ... –

Antwort

0
DELETE InventoryUnitMeasure.upccode 
FROM dbo.InventoryUnitMeasure 
    INNER JOIN InventoryItem 
    ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

sollte diese Arbeit

+0

Ich kenne kein DBMS, mit dem Sie eine Spalte in einer DELETE FROM-Anweisung angeben können. Er versucht entweder, die gesamte Zeile zu entfernen (da er sie mit einer anderen Zeile verknüpft), aktualisiert diese bestimmte Spalte auf einen Wert, der das Löschen darstellt, oder möchte die Struktur der Tabelle ändern, um die Spalte zu entfernen ... aber das wird nicht Arbeit für jeden dieser Fälle. –

3

Wird zum Löschen ganze Reihe nicht-Anweisung DELETE? Wie ich Ihre Frage underestand, sollten Sie wahrscheinlich UPDATE-Anweisung stattdessen verwenden ..

UPDATE table dbo.InventoryUnitMeasure SET upcode = null ... 

kann ein Hinweis auf Syntax here (schnelle Google-Suche) seine

+0

+1 Zum Posten eines Links zu mehreren Lösungen für mehrere DBMS, da dies vom OP nicht angegeben wurde. –

+0

Update-Tabelle ist genau das, was ich tun wollte. Danke, Pida, dass du meine Frage durchgesehen hast, was ich wirklich wissen wollte! Für zukünftige Leute mit ähnlichen Fragen war dies für SQL Server. – user1316376

+0

Sie sind herzlich willkommen :) Jetzt können Sie diese Antwort als Lösung annehmen, denke ich :) –

0

haben Sie bemerkt, dass es zwei nacheinander von Aussagen ? Ändern Sie einfach den Anfang Ihrer DELETE-Anweisung als DELETE FROM table_name ....

Wenn Sie einen Wert einer Zelle unter einer bestimmten Spalte aktualisieren möchten, dann ist Píďa richtig. Wenn Sie die ganze Spalte aus einer Tabelle löschen möchten, dann sollten Sie ALTER TABLE table_name verwenden

DROP COLUMN column_name

, das bedeutet, dass Sie die Struktur der Tabelle ändern.

Verwandte Themen