Vollständige Version anzeigen : [SQL] Update Spalte mit "select from"


romestylez
28.01.2014, 15:07

Hallo,
ich habe folgende Abfrage.


SELECT
Device;sDisplayName as DisplayName,
DeviceType;sDisplayName as DeviceTypeName,
PivotActiveMonitorTypeToDevice;nActiveMonitorTypeID as MonitorID
FROM (WhatsUp;dbo;Device INNER JOIN WhatsUp;dbo;DeviceType ON Device;nDeviceTypeID = DeviceType;nDeviceTypeID)
INNER JOIN WhatsUp;dbo;NetworkInterface ON Device;nDeviceID = NetworkInterface;nDeviceID and Device;nDefaultNetworkInterfaceID = NetworkInterface;nNetworkInterfaceID
INNER JOIN WhatsUp;dbo;PivotActiveMonitorTypeToDevice ON Device;nDeviceID = PivotActiveMonitorTypeToDevice;nDeviceID
where Device;bRemoved = '0'


Damit bekomme ich folgende Ausgabe
#attach#8089#/attach#

Nun habe ich eine weitere Tabelle mit dem Namen "ActiveMonitorType" in dieser sieht es wie folgt aus
#attach#8093#/attach#

Ich würde nun gerne meine Abfrage so erweitern das anstatt nur der "MonitorID" die Spalte "sMonitorTypeName" und "sMonitorTypeDescription" ausgegeben wird. Ich muss also irgendwie die ausgegebene ID in dieser Tabelle suchen/finden und dann mit ausgeben.

Hat jemand eine Idee bzw. ein Beispiel wie ich das am besten umsetzen kann ?

//EDIT

Habe nun folgendes nur das Update funktioniert leider nicht :<


INSERT INTO WugTemp ([DisplayName], [DeviceTypeName], [MonitorID])
SELECT Device;sDisplayName as DisplayName, DeviceType;sDisplayName as DeviceTypeName, PivotActiveMonitorTypeToDevice;nActiveMonitorTypeID as MonitorID

FROM (WhatsUp;dbo;Device
INNER JOIN WhatsUp;dbo;DeviceType ON Device;nDeviceTypeID = DeviceType;nDeviceTypeID)
INNER JOIN WhatsUp;dbo;NetworkInterface ON Device;nDeviceID = NetworkInterface;nDeviceID and Device;nDefaultNetworkInterfaceID = NetworkInterface;nNetworkInterfaceID
INNER JOIN WhatsUp;dbo;PivotActiveMonitorTypeToDevice ON Device;nDeviceID = PivotActiveMonitorTypeToDevice;nDeviceID
where Device;bRemoved = '0';

UPDATE [WhatsUp];[dbo];[WugTemp] SET MonitorID
SELECT ActiveMonitorType;sMonitorTypeName FROM [WhatsUp];[dbo];[ActiveMonitorType], [WhatsUp];[dbo];[WugTemp] where ActiveMonitorType;nActiveMonitorTypeID = WugTemp;MonitorID

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Kolazomai
28.01.2014, 18:51

Hallo!

Wie waere es damit dein erstes Ergebnis als View zu speichern:
CREATE VIEW DisplayOverview AS SELECT
Device;sDisplayName as DisplayName,
DeviceType;sDisplayName as DeviceTypeName,
PivotActiveMonitorTypeToDevice;nActiveMonitorTypeID as MonitorID
FROM (WhatsUp;dbo;Device INNER JOIN WhatsUp;dbo;DeviceType ON Device;nDeviceTypeID = DeviceType;nDeviceTypeID)
INNER JOIN WhatsUp;dbo;NetworkInterface ON Device;nDeviceID = NetworkInterface;nDeviceID and Device;nDefaultNetworkInterfaceID = NetworkInterface;nNetworkInterfaceID
INNER JOIN WhatsUp;dbo;PivotActiveMonitorTypeToDevice ON Device;nDeviceID = PivotActiveMonitorTypeToDevice;nDeviceID
WHERE Device;bRemoved = '0';


Und nun die einfache Abfrage:
SELECT DisplayOverview;DisplayName, DisplayOverview;DeviceTypeName, ActiveMonitorType;sMonitorTypeName, ActiveMonitorType;sMonitorTypeDescription
FROM DisplayOverview, ActiveMonitorType
WHERE DisplayOverview;MonitorID = ActiveMonitorType;nActiveMonitorTypeID;


Also die beiden Tabellen zu verbinden und eben die Zeilen, bei denen die MonitorIDs uebereinstimmen, zusammenzufuegen. Die genaue Syntax kann je nach DBMS variieren. Welches benutzt du denn?

Mfg,

Kolazomai


romestylez
28.01.2014, 18:58

Hallo!

Wie waere es damit dein erstes Ergebnis als View zu speichern:
CREATE VIEW DisplayOverview AS SELECT
Device;sDisplayName as DisplayName,
DeviceType;sDisplayName as DeviceTypeName,
PivotActiveMonitorTypeToDevice;nActiveMonitorTypeID as MonitorID
FROM (WhatsUp;dbo;Device INNER JOIN WhatsUp;dbo;DeviceType ON Device;nDeviceTypeID = DeviceType;nDeviceTypeID)
INNER JOIN WhatsUp;dbo;NetworkInterface ON Device;nDeviceID = NetworkInterface;nDeviceID and Device;nDefaultNetworkInterfaceID = NetworkInterface;nNetworkInterfaceID
INNER JOIN WhatsUp;dbo;PivotActiveMonitorTypeToDevice ON Device;nDeviceID = PivotActiveMonitorTypeToDevice;nDeviceID
WHERE Device;bRemoved = '0';


Und nun die einfache Abfrage:
SELECT DisplayOverview;DisplayName, DisplayOverview;DeviceTypeName, ActiveMonitorType;sMonitorTypeName, ActiveMonitorType;sMonitorTypeDescription
FROM DisplayOverview, ActiveMonitorType
WHERE DisplayOverview;MonitorID = ActiveMonitorType;nActiveMonitorTypeID;


Also die beiden Tabellen zu verbinden und eben die Zeilen, bei denen die MonitorIDs uebereinstimmen, zusammenzufuegen. Die genaue Syntax kann je nach DBMS variieren. Welches benutzt du denn?

Mfg,

Kolazomai


Wäre auch eine Möglichkeit. Habe mit Views auch nocht nicht so viel gemacht und deswegen den Weg über die Temp-Tabelle genutzt. Wenn ich deine Abfrage richtig verstehe mach die auch nicht das was ich möchte, könnte aber auch mein fail sein.

Läuft alles auf einem SQL-Server 2008 und eigentlich habe ich das ja auch komplett fertig nur das UPDATE mit dem SELECT funtzt halt leider nicht ^^

Mein Weg ist also:

Resultat in eine Temp-Tabelle schreiben.
Select der ID machen und mit der ID in der Tabelle vergleichen in welcher auch der Name steht.
Dann das ID-Feld in der Temp-Tabelle mit dem Namen updaten.


//EDIT:

Ich glaube ich habe meinen Fehler gerade gefunden. Ich glaube das "=" und die () fehlen nach "SET MonitorID" kann das aber erst morgen testen.

Falsch
UPDATE [WhatsUp];[dbo];[WugTemp] SET MonitorID
SELECT ActiveMonitorType;sMonitorTypeName FROM [WhatsUp];[dbo];[ActiveMonitorType], [WhatsUp];[dbo];[WugTemp] where ActiveMonitorType;nActiveMonitorTypeID = WugTemp;MonitorID


Richtig
UPDATE [WhatsUp];[dbo];[WugTemp] SET MonitorID =
(SELECT ActiveMonitorType;sMonitorTypeName FROM [WhatsUp];[dbo];[ActiveMonitorType], [WhatsUp];[dbo];[WugTemp] where ActiveMonitorType;nActiveMonitorTypeID = WugTemp;MonitorID)


romestylez
30.01.2014, 16:48

Keiner eine Idee ? ;)


Ähnliche Themen zu [SQL] Update Spalte mit "select from"
  • [XP] Windows XP Standartbilder "blaue Berge", "Wasserlilien","Winter" und "Sonnenuntergang
    Hallo, ich brauche unbedingt die originalen Standartbilder die unter Windows XP unter "Beispielbilder" gespeichert sind. Hat wer ne ahnung wo ich die finden kann bzw. wenn könnte sie mir jemand hochladen? Dank im Vorraus! Gruß [...]

  • [PHP] SELECT WHERE Spalte = a und ID am kleinsten
    Hey Leute Ich habe wieder mal ein MySQL / PHP Problem. Ich habe eine Tabelle mit Produkten: id, Produktbezeichnung, Produktfamilie 1 ABC1 ABC 2 ABC2 ABC 3 AB1 AB 4 AB2 AB Ich will, dass mir in meiner Produkteübersicht immer nur das erste Produkt einer Produktfamlie angeze [...]

  • NEUER DANCE TRACK AUS DEM HAUSE " PRO SELECT "
    Hey leute wollte euch einmal meine neuen lieder vorstellen ... einmal eine platte die in richtung dance,trance gehen soll und Pro Select - Direction of <--// 02;Direction of;mp3 (;;24;zippyshare~com/v/88649634/file;html) es kann sein das es leicht übersteuert ... das liegt da [...]

  • Wbb2 Spalte "Letzter Betrag" vergrößern?
    Hallo, Ich kenne mich nicht so gut mit den Template aus aber könnt ihr mir sagen welches Template ich bearbeiten muss damit ich die spalte mit den "Letzter betrag" vergrößern kann? Oder die Spalte mit "Foren" ? Ein Name der Template würde mir schon reichen^^ noch besser wäre noch ne kl [...]



raid-rush.ws | Imprint & Contact pr