Benutzer mit den meisten Antworten
Sql datenbank hilfe

Frage
Antworten
-
Hallo Uncutevo0,
"ich hab nicht soviel zeit das ich mich grundlegend mit allem von sql auseinander setzten kann"
hmm - das ist meiner Meinung nach der komplett falsche Ansatz und ein Indikator dafür, warum ich genau mit solchen Anwendungen - anschließend - mein Geld verdiene :)
"wie mus ich das dann bei der demo oben verstehen weil da steht ja immer user id"
Gehört das dann auch zu Deiner Philosophie des ersten Satzes? Bei allem Respekt; hier mußt Du dich nicht mit SQL "auseinandersetzen" sondern Du mußt einfach nur das Beispiel nehmen, analysieren und verstehen!
Bitte beachte, dass die Leute, die hier antworten, dies in ihrer Freizeit machen. Dieser "Service" ist kostenlos; ich empfinde das schon fast als Beleidigung, wenn man sich die Mühe macht, Beispiele zu erstellen die dann doch nicht gelesen werden!
Also das Beispiel in abgeänderter Form noch einmal - aber dann solltest Du es verstehen ;)
USE demo_db; GO CREATE TABLE dbo.[1234] ( nemid INT NOT NULL IDENTITY (1, 1), USER_NAME varchar(30), CONSTRAINT pk_1234_UserId PRIMARY KEY CLUSTERED (nemid) ); GO CREATE TABLE dbo.[4321] ( [User Id] int NOT NULL REFERENCES dbo.[1234] (User_Id) ON DELETE CASCADE, Cash SMALLMONEY NOT NULL DEFAULT (0), Status BIT NOT NULL DEFAULT (0), Datum DATETIME NOT NULL DEFAULT (GETDATE()), CONSTRAINT pk_4321_User_Id PRIMARY KEY CLUSTERED ([User id]) ); GO CREATE TRIGGER dbo.trg_1234_Insert ON dbo.[1234] FOR INSERT AS SET NOCOUNT ON; INSERT INTO dbo.[4321] (User_Id) SELECT nemid FROM inserted; SET NOCOUNT OFF; GO -- demo INSERT INTO dbo.[1234] (User_Name) VALUES ('Uwe Ricken'); GO SELECT * FROM dbo.[1234]; SELECT * FROM dbo.[4321];
@Björn:
Auf Rechtschreibung herumzureiten, sie selbst auch nicht perfekt zu beherrschen, halte ich für anmaßend! Wir wissen nicht, ob der Threadstarter Deutscher ist oder unter Legastenie leidet. Dieses Forum ist kein Rechtschreibforum sondern ein IT-Forum; ähnlich dürfte es unseren Kollegen wohl in den englischen Foren gehen, oder?
Wie würdest Du reagieren, wenn Dir in den englischen Foren jemand schlechte Grammatik oder Rechtschreibung vorwirft? Du würdest ev. nicht mehr posten. Und das wäre schade, davon leben Foren, wie diese hier!
MCM - SQL Server 2008
MCSE - SQL Server 2012
db Berater GmbH
SQL Server Blog (german only)- Bearbeitet Uwe RickenMVP Mittwoch, 9. Juli 2014 05:05
- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Donnerstag, 10. Juli 2014 09:28
- Als Antwort markiert Ionut DumaModerator Freitag, 1. August 2014 13:19
Alle Antworten
-
also als erstes suche ich eine funktion die ich als neue abfrage oder so machen kann die mir aus einer tabelle aus einer bestimmten spalte namen raus sucht und dann nur die zeilen in einem extra fenster wieder gibt die in der spalte den namen enthalten bsp
tabelle 1234
spalten baum blätter knospen
zeile 1 braun grün x
zeile 2 braun gelb x
zeile 3 grün gelb x
zeile 4 braun grün x
funktion suche mir aus tabelle 1234 spalte blätter die grünen
am ende sol dann nur auf einem extra blatt die zeilen mit grünen blätternstehen
zeile 1 braun grün x
zeile 4 braun grün x
so eien funktion suche ich
problembei meiner datenbank ist einfach das da viele log drin sidn die 200k und mehr zeilen haben da einzelnd suchen ist echt die höhle habe danna uch noch mehr funktionenn die ich brauchte und ich sags gleich vorne weg ich hab echt sehr wennig ahnung und bitte wundert euch nciht über meine schreib weise wenn ich mal bustaben dreher drin habe das ich schreib zu schnell mit finger such system :D- Bearbeitet UncutevoO Dienstag, 8. Juli 2014 08:05
-
Hallo UncutevoO,
ich glaube, dass Du Relationale Datenbanken mit "Programmierung" verwechselst. Du solltest Dich zunächst mal mit dem Konzept der Relationalen Datenbanken vertraut machen. Dann wirst Du auch sehr schnell fündig, dass Daten mit SELECT ermittelt werden.
Für Dein konkretes Beispiel wäre das wie folgt:
SELECT * FROM [12345] WHERE Blaetter = 'gruen';
Wenn jedoch nicht der exakte Wert in dem Attribut vorhanden ist, musst Du mit LIKE arbeiten (die ganzen Vor- und Nachteile lassen wir aus Gründen der Vereinfachung einfach mal weg!)
SELECT * FROM [12345] WHERE Blaetter LIKE '%gruen%';
MCM - SQL Server 2008
MCSE - SQL Server 2012
db Berater GmbH
SQL Server Blog (german only) -
danke naja ich hab das bsp nur gewählt weil ich mich mit worten immer schelcht ausdrücken kann und dann verstehen vieles es nciht auf anhieb und vielen lieben dank deine funktion ist genau das was ich gesucht habe meine ich hätte da noch ein paar mehr dinge was funktion betrifft die auch etwas komplexer sind teil funktionen habe ich schon aber ich will das als einegesammt funktion oder als dauerhafte funktion in der tabelle habenund zwar ist es eine vergleichund add funktion von 2 tabllen 2 spalten
ich habe tabelle 1234 spalte nuser mit user 1-10
tabelle 4321 mit spalten
nuser cash status datum
1 0 false datum
2 50 false datum
3 30 false datum
ende
ich hätte gern das von 1234 zu 4321 die nuser vergleichen werden und die fehlen geaddet werden mit cash 0 status false und dem aktuelen datum
dananch dann eine erhöhung des cash da hab ich die funktion aber schon das wäre
UPDATE 4321
SET [Cash] = cash + '230' -
Hallo,
grundsätzlich ist m. E. dieses Forum der falsche Ansatz, um SQL zu "lernen". Du mußt Dich erst einma mit dem Basiswissen und der Terminologie auseinander setzen. In einem Thread kann man nicht alle Grundlagen von SQL beschreiben (dazu bedarf es dann doch Bücher!).
Dein Ziel erreichst Du entweder mit Triggern oder aber mit nachgelagerten SQL-Statements, die das DELTA in die Zieltabelle eintragen. Ich habe hier mal ein Beispiel mit Triggern erstellt:
USE demo_db; GO CREATE TABLE dbo.[1234] ( USER_ID INT NOT NULL IDENTITY (1, 1), USER_NAME varchar(30), CONSTRAINT pk_1234_UserId PRIMARY KEY CLUSTERED (User_id) ); GO CREATE TABLE dbo.[4321] ( User_Id int NOT NULL REFERENCES dbo.[1234] (User_Id) ON DELETE CASCADE, Cash SMALLMONEY NOT NULL DEFAULT (0), Status BIT NOT NULL DEFAULT (0), Datum DATETIME NOT NULL DEFAULT (GETDATE()), CONSTRAINT pk_4321_User_Id PRIMARY KEY CLUSTERED (User_id) ); GO CREATE TRIGGER dbo.trg_1234_Insert ON dbo.[1234] FOR INSERT AS SET NOCOUNT ON; INSERT INTO dbo.[4321] (User_Id) SELECT USER_ID FROM inserted; SET NOCOUNT OFF; GO -- demo INSERT INTO dbo.[1234] (User_Name) VALUES ('Uwe Ricken'); GO SELECT * FROM dbo.[1234]; SELECT * FROM dbo.[4321];
MCM - SQL Server 2008
MCSE - SQL Server 2012
db Berater GmbH
SQL Server Blog (german only) -
ah ich verstehe was du meinst naja ich hab nicht soviel zeit das ich mich grundlegend mit allem von sql auseinander setzten kann ich kann ein paar ansätzeund brauch halt nur bestimmte funktionen da ich mit den server arbeiten an sich schon genug zu tun habe und diese funktion es mir etwas erleichtern sollen damit ich es nicht manuel eintragen mus
dadrum suche ich hier die hilfe um schneller ans ziel zu kommen durch erfahrende leute und das meiste lern ich eh an praktischen beispielen bin nicht so der theoretiker
ich kenne leider niemanden im bekanen kreis der mir mit komplexen sql skrippten helfen kann dadrum hier
ich danke auf jedemfall für jede hilfe und werd emich jetzt etwas mit dem trigger auseinader setzten :)
fals ich dennoch hier falsch bin werde ich hier auch nicht mehr schreiben will keinem zur last fallen
-
Antwort du haben möchtest. Frage du stellen musst richtig. (Joda)
Hallo UncutevoO,
bemühe dich bitte um eine möglichst korrekte Rechtschreibung (Groß und Kleinschreibung mit Einbezogen). Es ist ja sicher nicht dein ziel das die Leute 5x mal deine Frage lesen bevor sie überhaupt den Text verstanden haben.
Nun zur Antwort, wenn in deiner Tabelle die Spalten anders heißen als im Beispiel, musst du natürlich die Namen deiner Spalten an der Entsprechende stelle verwenden.
Was das Lesen eines Buches angeht, hier wird keiner Verlangen, dass du dir erst mal komplexe Sachen aneignen muss bevor man dir hilf. Aber ein einfaches Select (* from tabel) ist im SQL so grundlegend, dass es einfach jeder Programmierer können sollte. Denn Crash Kurs solltest du dir zumindest mal durchlesen.
MFG
Björn
-
Hallo Uncutevo0,
"ich hab nicht soviel zeit das ich mich grundlegend mit allem von sql auseinander setzten kann"
hmm - das ist meiner Meinung nach der komplett falsche Ansatz und ein Indikator dafür, warum ich genau mit solchen Anwendungen - anschließend - mein Geld verdiene :)
"wie mus ich das dann bei der demo oben verstehen weil da steht ja immer user id"
Gehört das dann auch zu Deiner Philosophie des ersten Satzes? Bei allem Respekt; hier mußt Du dich nicht mit SQL "auseinandersetzen" sondern Du mußt einfach nur das Beispiel nehmen, analysieren und verstehen!
Bitte beachte, dass die Leute, die hier antworten, dies in ihrer Freizeit machen. Dieser "Service" ist kostenlos; ich empfinde das schon fast als Beleidigung, wenn man sich die Mühe macht, Beispiele zu erstellen die dann doch nicht gelesen werden!
Also das Beispiel in abgeänderter Form noch einmal - aber dann solltest Du es verstehen ;)
USE demo_db; GO CREATE TABLE dbo.[1234] ( nemid INT NOT NULL IDENTITY (1, 1), USER_NAME varchar(30), CONSTRAINT pk_1234_UserId PRIMARY KEY CLUSTERED (nemid) ); GO CREATE TABLE dbo.[4321] ( [User Id] int NOT NULL REFERENCES dbo.[1234] (User_Id) ON DELETE CASCADE, Cash SMALLMONEY NOT NULL DEFAULT (0), Status BIT NOT NULL DEFAULT (0), Datum DATETIME NOT NULL DEFAULT (GETDATE()), CONSTRAINT pk_4321_User_Id PRIMARY KEY CLUSTERED ([User id]) ); GO CREATE TRIGGER dbo.trg_1234_Insert ON dbo.[1234] FOR INSERT AS SET NOCOUNT ON; INSERT INTO dbo.[4321] (User_Id) SELECT nemid FROM inserted; SET NOCOUNT OFF; GO -- demo INSERT INTO dbo.[1234] (User_Name) VALUES ('Uwe Ricken'); GO SELECT * FROM dbo.[1234]; SELECT * FROM dbo.[4321];
@Björn:
Auf Rechtschreibung herumzureiten, sie selbst auch nicht perfekt zu beherrschen, halte ich für anmaßend! Wir wissen nicht, ob der Threadstarter Deutscher ist oder unter Legastenie leidet. Dieses Forum ist kein Rechtschreibforum sondern ein IT-Forum; ähnlich dürfte es unseren Kollegen wohl in den englischen Foren gehen, oder?
Wie würdest Du reagieren, wenn Dir in den englischen Foren jemand schlechte Grammatik oder Rechtschreibung vorwirft? Du würdest ev. nicht mehr posten. Und das wäre schade, davon leben Foren, wie diese hier!
MCM - SQL Server 2008
MCSE - SQL Server 2012
db Berater GmbH
SQL Server Blog (german only)- Bearbeitet Uwe RickenMVP Mittwoch, 9. Juli 2014 05:05
- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Donnerstag, 10. Juli 2014 09:28
- Als Antwort markiert Ionut DumaModerator Freitag, 1. August 2014 13:19