<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>SQL Problem</title>
    <link>http://forum.geizhals.at/feed.jsp?id=173915</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(2): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,940674.html#940674</link>
      <description>Danke!&lt;br&gt;Ich bin gerade dabei deine Lösung zu probieren, habe aber eine Weile gebraucht bis ich den rownum-Funktion (gibt es in MS-SQLServer nicht!) emuliert habe. Ich habe jetzt eine Lösung vom &lt;a href="http://www.fawcette.com/dotnetmag/2002_10/magazine/columns/architecting/listing2.asp" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.fawcette.com/&lt;wbr/&gt;dotnetmag/&lt;wbr/&gt;2002_10/&lt;wbr/&gt;magazine/&lt;wbr/&gt;columns/&lt;wbr/&gt;architecting/&lt;wbr/&gt;listing2.asp&lt;/a&gt;&amp;nbsp;&amp;nbsp;verwendet, und habe ein Stored Procedure gemacht das mir den v_tab erstellt. Leider schaffe ich es (noch) nicht, der Output der StoredProcedure in eine weitere Select oder View zu verwenden... Aber ich kämpfe weiter... &lt;img src="glasses.gif" width="16" height="19" align="absmiddle" alt="8-)"/&gt;&lt;br&gt;&lt;br&gt;Ardjan&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 09 Jul 2003 10:40:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,940674.html#940674</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2003-07-09T10:40:29Z</dc:date>
    </item>
    <item>
      <title>Re(4): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,940635.html#940635</link>
      <description>Habs nach 20 Stunden Laufzeit abgebrochen. War wohl eher ein theoretischer Ansatz, obwohl es funktionieren würde (halt nur für kleine Datenmengen &lt;img src="flenn.gif" width="16" height="19" align="absmiddle" alt=":´("/&gt;)&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br/&gt;</description>
      <pubDate>Wed, 09 Jul 2003 09:59:01 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,940635.html#940635</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-09T09:59:01Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939637.html#939637</link>
      <description>Danke, teste es gerade an einer Tabelle mit 1,5 Mio Einträgen, ...&lt;br&gt;&lt;br&gt;läuft schon eine Weile &lt;img src="crazy.gif" width="16" height="19" align="absmiddle" alt="%-)"/&gt;&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 14:32:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939637.html#939637</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-08T14:32:34Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939631.html#939631</link>
      <description>Beeindruckende Dinge, die Du da so produzierst!&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 14:26:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939631.html#939631</guid>
      <dc:creator>Psychopath</dc:creator>
      <dc:date>2003-07-08T14:26:52Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939594.html#939594</link>
      <description>das (+) bei "(tab_sub.grenze(+) -1)" kann auch weg, also "(tab_sub.grenze-1)"&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 14:01:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939594.html#939594</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-08T14:01:20Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939588.html#939588</link>
      <description>Beim äußersten Teil kannst noch sowas reinpacken:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;decode(tab.lfd_nr, 1, '', max(tab_sub.datestamp)) bis&lt;br&gt;&lt;br&gt;damit der jüngste TimeStamp offen bleibt. &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 13:56:07 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939588.html#939588</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-08T13:56:07Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939569.html#939569</link>
      <description>Hab ne Lösung mit "einem" Select:&lt;br&gt;&lt;br&gt;select &lt;br&gt;&amp;nbsp;&amp;nbsp;tab.typ,&lt;br&gt;&amp;nbsp;&amp;nbsp;min(tab_sub.datestamp) von,&lt;br&gt;&amp;nbsp;&amp;nbsp;max(tab_sub.datestamp) bis&lt;br&gt;from &lt;br&gt;&amp;nbsp;&amp;nbsp;v_tab tab, (&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.lfd_nr,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.typ,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.datestamp,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nvl(min(tab2.lfd_nr),tab3.max_lfd_nr) grenze&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v_tab tab1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v_tab tab2,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(select max(lfd_nr)+1 max_lfd_nr from v_tab) tab3&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.typ != tab2.typ (+) and&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.lfd_nr &amp;lt; tab2.lfd_nr (+)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;group by &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.lfd_nr,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.typ,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab1.datestamp,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tab3.max_lfd_nr&lt;br&gt;&amp;nbsp;&amp;nbsp;) tab_sub&lt;br&gt;where tab.lfd_nr = (tab_sub.grenze(+) -1)&lt;br&gt;group by tab.lfd_nr, tab.typ&lt;br&gt;having min(tab_sub.lfd_nr) is not null&lt;br&gt;&lt;br&gt;&lt;br&gt;wobei v_tab ein View ist der so aussieht:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;select rownum, typ, datestamp &lt;br&gt;&amp;nbsp;&amp;nbsp;from tab&lt;br&gt;&amp;nbsp;&amp;nbsp;order by datestamp desc&lt;br&gt;&lt;br&gt;&lt;br&gt;Das ist jetzt Oracle-Syntax, (+) is ein OuterJoin.&lt;br&gt;Ob das Ding bei 1Mio. Datensätzen eine brauchbare Performance liefert weiß ich nicht, dazu fehlen mir Testdaten.&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br&gt;&lt;br&gt;PS: hat mich etwa 3 Stunden gekostet &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 13:33:07 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939569.html#939569</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-08T13:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939556.html#939556</link>
      <description>(kann nur mysql, aber code schreiben ist mir jetzt zu anstrengend, ich mach mal pseudo (irgendein c++/mysql mischmasch &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; ), sowie walter &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; )&lt;br&gt;&lt;br&gt;db: alte database mit timestamp (timestamp) und type (typ)&lt;br&gt;db2: neue database mit time_start, time_end und type&lt;br&gt;&lt;br&gt;ds = "1"&lt;br&gt;&lt;br&gt;do {&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;select type, timestamp from db where nr = ds;&lt;br&gt;typ = type;&lt;br&gt;time = timestamp;&lt;br&gt;&lt;br&gt;update db2 set time_start = time;&lt;br&gt;&lt;br&gt;do&lt;br&gt;{&lt;br&gt;update db2 set time_end = time where nr = ds;&lt;br&gt;ds++;&lt;br&gt;select type, timestamp from db where nr = ds;&lt;br&gt;type = type;&lt;br&gt;time = timestamp;&lt;br&gt;&lt;br&gt;}&lt;br&gt;while(type==typ)&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 13:21:30 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939556.html#939556</guid>
      <dc:creator>noxos</dc:creator>
      <dc:date>2003-07-08T13:21:30Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939396.html#939396</link>
      <description>Hi,&lt;br&gt;&lt;br&gt;in einer "einzelnen" Abfrage bringst das definitiv nicht unter. Die einzige Möglichkeit, die ich jetzt sehe, ist mittels Stored Proc. sequentiell Zeile&lt;br&gt;für Zeile abarbeiten. &lt;br&gt;&lt;br&gt;Ich hab mir mal eben nen Pseudo-Code aus den Fingern gesaugt:&lt;br&gt;&lt;br&gt;v_typ = -1&lt;br&gt;v_max_datum = ""&lt;br&gt;&lt;br&gt;do&lt;br&gt;&amp;nbsp;&amp;nbsp; wenn DS.typ != v_typ und nicht erster DS dann&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert mit v_typ, v_min_datum, v_max_datum&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_typ = DS.typ&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_max_datum = DS.datum&lt;br&gt;&amp;nbsp;&amp;nbsp; sonst&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_min_datum = DS.datum&lt;br&gt;loop über alle Datensätze DS&lt;br&gt;&lt;br&gt;&lt;br&gt;keine Garantie auf Korrektheit und Vollständigkeit, soll ja nur eine Idee&lt;br&gt;sein wie man das lösen kann. Wie performant das bei 1 Mio. Datensätzen&lt;br&gt;is, keine Ahnung hängt von deinem Rechner ab.&lt;br&gt;&lt;br&gt;greetz&lt;br&gt;Walter&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 11:16:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939396.html#939396</guid>
      <dc:creator>Sir Hondo</dc:creator>
      <dc:date>2003-07-08T11:16:35Z</dc:date>
    </item>
    <item>
      <title>SQL Problem</title>
      <link>http://forum.geizhals.at/t173915,939180.html#939180</link>
      <description>Hi! &lt;br&gt;Ich muß eine bestehende Tabelle in eine Abfrage umkovertieen. Der Tabelle ist von ein Simatic Steuerung angelegt worden, da kann ich leider nix an der Definition ändern.&lt;br&gt;Der Ursprungstabelle schaut so aus:&lt;br&gt;DateStamp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Typ&lt;br&gt;===================&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;===&lt;br&gt;2003-07-07 10:37:54.197&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;br&gt;2003-07-07 10:37:53.197&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;141&lt;br&gt;2003-07-04 18:12:53.107&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;141&lt;br&gt;2003-07-04 18:12:52.107&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;142&lt;br&gt;2003-07-04 16:58:05.188&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;142&lt;br&gt;2003-07-04 12:46:39.387&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;142&lt;br&gt;2003-07-04 12:46:38.387&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;141&lt;br&gt;2003-07-03 19:19:50.953&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;141&lt;br&gt;&lt;br&gt;In diesen Fall soll folgendes rauskommen:&lt;br&gt;Typ&amp;nbsp;&amp;nbsp;Von&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bis&lt;br&gt;===&amp;nbsp;&amp;nbsp;====================&amp;nbsp;&amp;nbsp;====================&lt;br&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2003-07-07 10:37:54.197&lt;br&gt;141&amp;nbsp;&amp;nbsp; 2003-07-04 18:12:53.107&amp;nbsp;&amp;nbsp; 2003-07-07 10:37:53.197&lt;br&gt;142&amp;nbsp;&amp;nbsp; 2003-07-04 12:46:39.387&amp;nbsp;&amp;nbsp; 2003-07-04 18:12:52.107&lt;br&gt;141&amp;nbsp;&amp;nbsp; 2003-07-03 19:19:50.953&amp;nbsp;&amp;nbsp; 2003-07-04 12:46:38.387&lt;br&gt;&lt;br&gt;Aus eine Liste von Ereignisse soll eine Liste mit Von-Bis Zeiten rauskommen. Das ganze rennt auf eine SQL-Server 2000, und der Abfrage (Stored Procedure?) soll einigermaßen flott sein, der Tabelle hat derzeit etwa 1.000.000 Datensätze!&lt;br&gt;&lt;br&gt;Hat jemand ein Tipp für mich?&lt;br&gt;&lt;br&gt;Danke im Voraus!&lt;br&gt;Ardjan&lt;br/&gt;</description>
      <pubDate>Tue, 08 Jul 2003 09:06:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t173915,939180.html#939180</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2003-07-08T09:06:05Z</dc:date>
    </item>
  </channel>
</rss>
