• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Schwanzvergleich: SQL Queries

Wiseguy3

Guest
Wer hat n längeres? Für das musste ich extra n Script schreiben, welches mir das Query erstellt, weil ich es per Hand nicht mehr handlen konnte.
CREATE TABLE `ergebnisse` ( `id` INT(5) AUTO_INCREMENT , `F1` INT(1) DEFAULT NULL, `F2` INT(1) DEFAULT NULL, `F3` INT(1) DEFAULT NULL, `F4` INT(1) DEFAULT NULL, `F5` INT(1) DEFAULT NULL, `F6` INT(1) DEFAULT NULL, `F7` INT(1) DEFAULT NULL, `F8` INT(1) DEFAULT NULL, `F9` INT(1) DEFAULT NULL, `F10` VARCHAR(100) DEFAULT NULL, `F11` INT(1) DEFAULT NULL, `F12` INT(1) DEFAULT NULL, `F13` INT(1) DEFAULT NULL, `F14` INT(1) DEFAULT NULL, `F15` INT(1) DEFAULT NULL, `F16` INT(1) DEFAULT NULL, `F17` INT(1) DEFAULT NULL, `F18` INT(1) DEFAULT NULL, `F19` INT(1) DEFAULT NULL, `F20` INT(1) DEFAULT NULL, `F21` INT(1) DEFAULT NULL, `F22` INT(1) DEFAULT NULL, `F23` INT(1) DEFAULT NULL, `F24` INT(1) DEFAULT NULL, `F25` INT(1) DEFAULT NULL, `F26` INT(1) DEFAULT NULL, `F27` INT(1) DEFAULT NULL, `F28` INT(1) DEFAULT NULL, `F29` INT(1) DEFAULT NULL, `F30` INT(1) DEFAULT NULL, `F31` INT(1) DEFAULT NULL, `F32` INT(1) DEFAULT NULL, `F33` INT(1) DEFAULT NULL, `F34` INT(1) DEFAULT NULL, `F35` VARCHAR(100) DEFAULT NULL, `F36` INT(1) DEFAULT NULL, `F37` INT(1) DEFAULT NULL, `F38` INT(1) DEFAULT NULL, `F39` INT(1) DEFAULT NULL, `F40` INT(1) DEFAULT NULL, `F41I` INT(1) DEFAULT NULL, `F41A` INT(1) DEFAULT NULL, `F41K` INT(1) DEFAULT NULL, `F41U` INT(1) DEFAULT NULL, `F42I` INT(1) DEFAULT NULL, `F42A` INT(1) DEFAULT NULL, `F42K` INT(1) DEFAULT NULL, `F42U` INT(1) DEFAULT NULL, `F43I` INT(1) DEFAULT NULL, `F43A` INT(1) DEFAULT NULL, `F43K` INT(1) DEFAULT NULL, `F43U` INT(1) DEFAULT NULL, `F44I` INT(1) DEFAULT NULL, `F44A` INT(1) DEFAULT NULL, `F44K` INT(1) DEFAULT NULL, `F44U` INT(1) DEFAULT NULL, `F45I` INT(1) DEFAULT NULL, `F45A` INT(1) DEFAULT NULL, `F45K` INT(1) DEFAULT NULL, `F45U` INT(1) DEFAULT NULL, `F46I` INT(1) DEFAULT NULL, `F46A` INT(1) DEFAULT NULL, `F46K` INT(1) DEFAULT NULL, `F46U` INT(1) DEFAULT NULL, `F47I` INT(1) DEFAULT NULL, `F47A` INT(1) DEFAULT NULL, `F47K` INT(1) DEFAULT NULL, `F47U` INT(1) DEFAULT NULL, `F48I` INT(1) DEFAULT NULL, `F48A` INT(1) DEFAULT NULL, `F48K` INT(1) DEFAULT NULL, `F48U` INT(1) DEFAULT NULL, `F49I` INT(1) DEFAULT NULL, `F49A` INT(1) DEFAULT NULL, `F49K` INT(1) DEFAULT NULL, `F49U` INT(1) DEFAULT NULL, `F50I` INT(1) DEFAULT NULL, `F50A` INT(1) DEFAULT NULL, `F50K` INT(1) DEFAULT NULL, `F50U` INT(1) DEFAULT NULL, `F51I` INT(1) DEFAULT NULL, `F51A` INT(1) DEFAULT NULL, `F51K` INT(1) DEFAULT NULL, `F51U` INT(1) DEFAULT NULL, `F52` VARCHAR(100) DEFAULT NULL, `F53` INT(1) DEFAULT NULL, `F54` INT(1) DEFAULT NULL, `F55S` INT(1) DEFAULT NULL, `F55B` INT(1) DEFAULT NULL, `F55N` INT(1) DEFAULT NULL, `F55R` INT(1) DEFAULT NULL, `F56` INT(1) DEFAULT NULL,PRIMARY KEY ( `id` ) );
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
wo liegt der sinn von soviel feldern? :elefant:
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
O_o

woran genau codest du gerade?? mein längstes query dürfte btw die eintragungen der details der member in die tabelle sein :) ist aber nicht mit deinem zu vergleich X_x
 

Sas~iN~LoVe

Guest
hier zu hause gar keine... auf der arbeit schon :o

aber einfach nur ne menge felder find ich jetzt nich so prickelnd :p
 

The_Company

Guest
Die Tabelle ist nicht dazu gedacht, dass man sie versteht, oder?
FxxY ist nicht gerade ein sehr sprechender Name für nen Durchschnittsbürger und ich hab das dumme Gefühl, man könnte statt unendlich vielen Spalten besser Merkmalsfelder benutzen, abewr was weiss ich schon.

PS: Die längste Query, die ich hier auf die schnelle gefunden habe, ist 3767 Zeichen lang und damit schon mal fast doppelt so gross.
 

ventilator

Guest
ein CREATE TABLE ist ja wohl nicht so spannend:bored:

Wo sind die SELECT FROM mit den schönen WHERE's, mit dem einen oder anderen AND und das INNER JOIN nicht vergessen und das ganze bitte SORT BY.

gogogo

Aber mal im Ernst, ich find SQL Queries nun auch wieder nicht soooo geil.
 

Sas~iN~LoVe

Guest
ich bin sicher ventilator (der name ist mir bei den gegenwärtigen temperaturen übrigens äusserst sympatisch) hat nur vergessen, dass die selects natürlich auch noch mehrfach ineinander verschachtelt und evlt grouped sein müssen :ugly:

ähm aber nee... echt nich soooooo prickelnd ;)
 
Mitglied seit
03.08.2002
Beiträge
1.307
Reaktionen
6
kann ich absolut nicht mithalten, meine querys beschränken sich auf ~ 10 wörter :[
 

aFrI_

Guest
lasst das kind doch auf wolke 7 schweben da es endlich sql kann
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
omg ich glaub das längste was ich bis jetzt hatte war ca halb so lang
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
Jo, ganz toll, n create table ...

wenn dann sollten es echt select's distinct, concat mit join's und where's und order und limit etc sein.

geht natürlich am besten mit ner full feature db, nicht mysql ;)
 

Wiseguy3

Guest
Die Selects erspar ich euch. :D

Das ist ne Umfrage von nem Medienwissenschaftler...
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
wenn das für ne umfrage ist hätte man das schickter lösen können :)
 

The_Company

Guest
Muahahaha, so ala 1 Spalte pro Frage, fast alles Ja/Nein, Rest Texteingabe? :x
Und wenn ihm einfällt er möchte noch ne Frage zwischen Frage 25 und Frage 26 haben? :D
 

Wiseguy3

Guest
Original geschrieben von The_Company
Muahahaha, so ala 1 Spalte pro Frage, fast alles Ja/Nein, Rest Texteingabe? :x
Und wenn ihm einfällt er möchte noch ne Frage zwischen Frage 25 und Frage 26 haben? :D
Zu frage 1: Genau. :x

Zu Frage2: Ist kein Problem, mein Umfragescript ist dynamisch aufgebaut - ist egal wieviele Seiten und wieviele Fragen er wo einfügen will, ich muss dann bloss noch die Felder in der Datenbank hinzufügen. Der Rest läuft automatisch.

@Dari: Dann sag mal, wie man das hätte besser lösen können. So kann ich ihm zeitgesteuert CSV Exports für Excel zuschicken und habe ausserdem noch einen guten Überblick, wo welche Frage steht und vor allem keinen Overhead durch zusätzliche Zusätze wie "Frage1:Blau; Frage2:6...".
 
Mitglied seit
03.08.2002
Beiträge
2.166
Reaktionen
0
Hab ma gehört es is kacke 38423841902 queries zu machen.

wenn ihrn schwanzvergelich machen wollt denkt euch was bestimmtes aus und der der die queries wenigsten und das einfachste script hat hat gewonnen x_X
 

Wiseguy3

Guest
Naja, dann hab ich wohl genwonnen, weil ich jeweils nur ein Query brauche.. :/
 

Disruptor

Turniere & LANs
Mitglied seit
03.08.2002
Beiträge
666
Reaktionen
0
wie langweilig

In der Arbeit übermittle ich an den SQL-Server öfter längere Batches mit eingebauten Schleifen, weil das am Server schneller abläuft und Overhead spart - diese Batches können durchaus mal 40 - 60 KB haben.
Die andere Art von langen SQL-Kommandos sind einzelne Killer-Statements mit etlichen Sub-Queries und Sub-Selects. Auch hier bin ich oft deutlich über 10 KB.
Da auch solche Queries eher der Regelfall denn die Ausnahme sind, habe ich auch in ein paar Kommandos einen "full outer join" verwendet - da ich die Queries mit "full outer join" mitzähle, kann ich sagen, dass das mit 3 Stück in 4 Jahren Programmiertätigkeit in meiner Firma eine echte Rarität ist.
Achso, MySQL unterstützt keine full outer joins.

Ein so langes Create Table Statement deutet wohl darauf hin, dass sich da jemand die Normalisierung gespart hat - wenn's aber Geschwindigkeitsvorteile bringt, kann man das durchaus mal weg lassen - Speicherplatz ist heute nicht mehr das Problem.
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
gleich mal mitprollen

Code:
CREATE Procedure spStartSingleEliminationTourney
    @paramTourneyID int,
    @paramRoundCount int
AS
IF 20 != (SELECT  PhaseID FROM Tourneys WHERE TourneyID=@paramTourneyID)
BEGIN
	RAISERROR ('TurnierPhase ist nicht 20. Nur Turniere in der Phase 20 koennen mit spStartSingleEliminationTourney gestartet werden!', 16, 1);
	RETURN 1;
END

BEGIN TRAN;
	DECLARE @scheduledParticipantCount int;
	SET @scheduledParticipantCount = POWER(2, @paramRoundCount);

/* Turnier einstellungen aktualisieren */
	UPDATE Tourneys 
		SET PhaseID=30, CurrentRound=0, PlayerCount=@scheduledParticipantCount
		WHERE TourneyID=@paramTourneyID;

/* Ueberschuessige Teilnehmer loeschen */
	CREATE TABLE #validParticipants
	( ID int IDENTITY PRIMARY KEY,
	PartID int NOT NULL);
	INSERT INTO #validParticipants(PartID)
		SELECT ParticipantID FROM Participants WHERE TourneyID=@paramTourneyID ORDER BY ParticipantID ASC;
	DELETE FROM #validParticipants WHERE ID > @scheduledParticipantCount;
	DELETE FROM Participants WHERE TourneyID=@paramTourneyID AND ParticipantID NOT IN(SELECT PartID FROM #validParticipants);
	DROP TABLE #validParticipants;

	/* Fuer fehlende Teilnehmer FreeWins erstellen */
	DECLARE @partsToAdd int;
	set @partsToAdd = @scheduledParticipantCount - (SELECT count(*) FROM Participants WHERE TourneyID=@paramTourneyID); 
	WHILE (@partsToAdd > 0)
	BEGIN
		INSERT INTO Participants(TourneyID, ParticipantName) 
			VALUES(@paramTourneyID, '[FreeLoss]');
		SET @partsToAdd=@partsToAdd-1;
	END

	/* RundenInfos eintragen */
	DECLARE @curRoundIter int;
	SET @curRoundIter=0;
	WHILE(@curRoundIter < @paramRoundCount)
		BEGIN
		INSERT INTO RoundInfos(TourneyID, RoundNum, RoundName, BestOfModeID, StartTime, Comment)
			VALUES(@paramTourneyID, @curRoundIter, '*DummyRound*', 1, '*DummyTime*', '*DummyComment*');
		SET @curRoundIter=@curRoundIter+1;
	END

	/* Encounters erstellen */
	SET @curRoundIter=0;
	WHILE(@curRoundIter < @paramRoundCount)
	BEGIN
		DECLARE @curGameIter int;
		SET @curGameIter = 0;
		WHILE(@curGameIter < @scheduledParticipantCount/2/POWER(2, @curRoundIter))
		BEGIN
			INSERT INTO Encounters(TourneyID, RoundNum, GameNum, Player1ID, Player2ID)
			VALUES(@paramTourneyID, @curRoundIter, @curGameIter, 0, 0);
			SET @curGameIter = @curGameIter+1;
		END
		SET @curRoundIter= 1+@curRoundIter; 
	END

	/* Spiel um 3. Platz */
	INSERT INTO Encounters(TourneyID, RoundNum, GameNum, Player1ID, Player2ID)
		VALUES(@paramTourneyID, @paramRoundCount-1, 1, 0, 0);


	/* Spieler in erste Runde eintragen (wichtig: zufallsreihenfolge, keine freewins zusammen) */
	CREATE TABLE #shuffledParticipants (
		ParticipantID int PRIMARY KEY,
		random int NOT NULL,
		Part int NOT NULL
	)

	INSERT INTO #shuffledParticipants 
		SELECT TOP 50 PERCENT ParticipantID,  ((Convert(int,(RAND(Convert(Int,
								ASCII(SUBSTRING(Convert(VarChar(100),NewId()),8,1))) *
								Convert(Int,ASCII(SUBSTRING(Convert(VarChar(100),NewId()),7,1))))*
								1000000))%10000) +
								(ParticipantID*(1+DatePart(s,GetDate()))*(1+DatePart(ms,GetDate())))%1000)
								AS random, 0 AS Part
		FROM Participants WHERE TourneyID=@paramTourneyID ORDER BY ParticipantID ASC
	
	INSERT INTO #shuffledParticipants 
		SELECT TOP 50 PERCENT ParticipantID,  ((Convert(int,(RAND(Convert(Int,
								ASCII(SUBSTRING(Convert(VarChar(100),NewId()),8,1))) *
								Convert(Int,ASCII(SUBSTRING(Convert(VarChar(100),NewId()),7,1))))*
								1000000))%10000) +
								(ParticipantID*(1+DatePart(s,GetDate()))*(1+DatePart(ms,GetDate())))%1000)
								AS random, 1 AS Part
		FROM Participants WHERE TourneyID=@paramTourneyID ORDER BY ParticipantID DESC

	DECLARE @fetchedPartID int;
	DECLARE @fetchedRandom int;
	DECLARE @fetchedPart int;
	
	DECLARE @fetchedCount int;
	SET @fetchedCount = 0;
	DECLARE shuffPart_Cursor CURSOR FOR
	SELECT * FROM #shuffledParticipants ORDER BY Part, random
	OPEN shuffPart_Cursor
	FETCH NEXT FROM shuffPart_Cursor INTO @fetchedPartID, @fetchedRandom, @fetchedPart
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @fetchedCount = @fetchedCount+1;
		IF @fetchedCount <= @scheduledParticipantCount/2 /* Erste haelfte */
			UPDATE Encounters SET Player1ID=@fetchedPartID WHERE TourneyID=@paramTourneyID AND RoundNum=0 AND GameNum=@fetchedCount-1;    
		else
			UPDATE Encounters SET Player2ID=@fetchedPartID WHERE TourneyID=@paramTourneyID AND RoundNum=0 AND GameNum=@fetchedCount-1 - @scheduledParticipantCount/2;    

		FETCH NEXT FROM shuffPart_Cursor INTO @fetchedPartID, @fetchedRandom, @fetchedPart
	END
	CLOSE shuffPart_Cursor
	DEALLOCATE shuffPart_Cursor  
COMMIT TRAN;



GO
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Original geschrieben von Wiseguy
Das war aber deutlich mehr als ein query... :/

naja wenn man danach geht, dass es eine *abfrage* ist in der form, dass es werte mittels select abfragt sind unsere beide anweisungen nicht zutreffend. wenn es um eine sql-*anweisung* geht, is meins genauso zutreffend wie deines.
es ist genau *eine anweisung* die ne komplexe stored procedure erzeugt :elefant:
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
das geilste ist immernoch wenn man nen kunden hat der meint sich durch seinen 4h volkshochschulkurs in db design auszukennen und einem dann so lustige vorschriften macht, ich glaub ihr wisst wovon ich rede :ugly:
 
Mitglied seit
12.08.2002
Beiträge
12.549
Reaktionen
0
ich bin auch dafür das vipers code nicht zählt und poste deswegen was von mir :elefant: :

SELECT UKZ, FIL, ABT, JAHR,
SUM(INVDIFFVK) as INVDIFFVK,
SUM(INVDIFFEK) as INVDIFFEK,
SUM(INVDIFFMG) as INVDIFFMG
FROM VWCMON
WHERE UKZ = 10
AND (FIL IN(SELECT FILIALE
FROM VZDVBTS
WHERE UKZ = VWCMON.UKZ
AND (TO_CHAR(SYSDATE, 'YYYYMMDD') >=
TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND
TO_CHAR(SYSDATE, 'YYYYMMDD') <=
TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0
UNION ALL
SELECT FILIALE
FROM VZDLBTS
WHERE UKZ = VWCMON.UKZ
AND (TO_CHAR(SYSDATE, 'YYYYMMDD') >=
TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND
TO_CHAR(SYSDATE, 'YYYYMMDD') <=
TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0
UNION ALL
SELECT FILIALE
FROM VZDBBTS
WHERE UKZ = VWCMON.UKZ
AND (TO_CHAR(SYSDATE, 'YYYYMMDD') >=
TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND
TO_CHAR(SYSDATE, 'YYYYMMDD') <=
TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0))
AND (ABT = 000
OR ABT IN (SELECT ABT
FROM VZDABT
WHERE UKZ = VWCMON.UKZ
AND (TO_CHAR(SYSDATE, 'YYYYMMDD') >=
TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND
TO_CHAR(SYSDATE, 'YYYYMMDD') <=
TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND ABT_TYP IN ('0', 'U')
AND TO_CHAR(STREICH_DAT, 'YYYYMMDD')
> TO_CHAR(SYSDATE, 'YYYYMMDD')
AND SPERRWW_KZ = 0))
AND JAHR = 2002
AND (MONAT >=1
AND MONAT <= 12)
AND NOT (INVDIFFVK = 0
AND INVDIFFEK = 0
AND INVDIFFMG = 0)
/* AND NOT EXISTS (SELECT NULL
FROM VWCMABT
WHERE UKZ = VWCMON.UKZ
AND FIL = VWCMON.FIL
AND ABT = VWCMON.ABT
AND JAHR = VWCMON.JAHR
AND MONAT >= VWCMON.MONAT)*/
GROUP BY UKZ, FIL, ABT, JAHR
UNION ALL
SELECT UKZ, FIL, ABT, JAHR,
SUM(INVDIFFVK) as INVDIFFVK,
SUM(INVDIFFEK) as INVDIFFEK,
SUM(INVDIFFMG) as INVDIFFMG
FROM VWCMON
WHERE UKZ = 10
AND (
NOT EXISTS (SELECT NULL
FROM VZDVBTS
WHERE UKZ = VWCMON.UKZ
AND FILIALE = VWCMON.FIL
AND (TO_CHAR(SYSDATE, 'YYYYMMDD')
>= TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND TO_CHAR(SYSDATE, 'YYYYMMDD')
<= TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0
UNION ALL
SELECT NULL
FROM VZDLBTS
WHERE UKZ = VWCMON.UKZ
AND FILIALE = VWCMON.FIL
AND (TO_CHAR(SYSDATE, 'YYYYMMDD')
>= TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND TO_CHAR(SYSDATE, 'YYYYMMDD')
<= TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0
UNION ALL
SELECT NULL
FROM VZDBBTS
WHERE UKZ = VWCMON.UKZ
AND FILIALE = VWCMON.FIL
AND (TO_CHAR(SYSDATE, 'YYYYMMDD')
>= TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND TO_CHAR(SYSDATE, 'YYYYMMDD')
<= TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND WWS_KZ = 2
AND SPERRWW_KZ = 0)
OR
NOT EXISTS (SELECT NULL
FROM VZDABT
WHERE UKZ = VWCMON.UKZ
AND ABT = VWCMON.ABT
AND (TO_CHAR(SYSDATE, 'YYYYMMDD')
>= TO_CHAR(GUELTIGAB_DAT, 'YYYYMMDD')
AND TO_CHAR(SYSDATE, 'YYYYMMDD')
<= TO_CHAR(GUELTIGBIS_DAT, 'YYYYMMDD'))
AND ABT_TYP IN ('0', 'U')
AND TO_CHAR(STREICH_DAT, 'YYYYMMDD')
> TO_CHAR(SYSDATE, 'YYYYMMDD')
AND SPERRWW_KZ = 0)
)
AND JAHR = 2002
AND (MONAT >= 1 AND MONAT <= 12)
AND NOT (INVDIFFEK = 0
AND INVDIFFVK = 0
AND INVDIFFMG = 0)
GROUP BY UKZ, FIL, ABT, JAHR
ORDER BY UKZ, FIL, ABT
 
Mitglied seit
12.08.2002
Beiträge
12.549
Reaktionen
0
achja viper: was sind das für @'s überall und warum manchmal ein doppel-@? :confused:
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Original geschrieben von Trashpilot
achja viper: was sind das für @'s überall und warum manchmal ein doppel-@? :confused:

einfache @ sind das prefix fuer eigene variablen die ich da selbst erstellt habe, @@ kennzeichnet variablen der datenbank wie in dem script der @@FETCH_STATUS, der solange 0 ist bis er am ende angelangt ist und kein datensatz mehr da ist der abgerufen werden kann.
 
Mitglied seit
12.08.2002
Beiträge
12.549
Reaktionen
0
das isn extrem seltsames system 8[

wenn jetzt nun jemand mal dein script ändert (ich nenn es mal so und nicht query -.-) .. und selbst eigene variablen erstellt, muß der sich dann auch was lustiges zum davorschreiben ausdenken? :elefant:
 
Mitglied seit
12.08.2002
Beiträge
12.549
Reaktionen
0
ich will davon gar nix wissen, meine stored procedures liegen zu 2/3 auf nem ibm host und zu 1/3 auf unix -.-

nix microsoft und nix komische variablendeklarationen :elefant:

übrigens @ den der da weiter oben sagte sql ist eh immer nur das gleiche: ein kollege der nebenberuflich richtiger sql profi ist tippt dir in 2 stunden mit reinem sql ein script hin welches ein ganzes 5000 zeilen langes cobol programm ersetzt oder optimiert db zugriffe mit ka was für dingers der da einbaut und womit auch immer er die transaktionen analysiert von 30 minuten auf 4 minuten bei ~100mio datensätzen.

wenn ich dem zugucke komm ich mir immer vor wie der letzte dau :8[:
 

The_Company

Guest
Sag ihm er soll den Scheiss dokumentieren, damit auch DAUs es zur Not begreifen.
 
Oben