![]() |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Hallo,
geht denn folgendes ?
SQL-Code:
(SELECT
T1.ID AS Name, T1.Partial DIV 3600 AS Partial, T1.Total DIV 3600 AS Total, T2.Unit AS Unit FROM Tabelle1 AS T1, Tabelle2 AS T2 WHERE T1.ID = T2.ID AND T2.Unit = 'hours') UNION (SELECT T3.ID AS Name, T3.Partial AS Partial, T3.Total AS Total, T4.Unit AS Unit FROM Tabelle1 AS T3, Tabelle2 AS T4 WHERE T3.ID = T4.ID AND T4.Unit = '') ORDER BY T3.ID ASC LIMIT 10000 Heiko |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Just for Info:
UNION ALL arbeitet schneller als UNION, weil der Server doppelte Datensätze nicht aus dem Ergebnis entfernen muss. (bei deiner Abfrage sind doppelte Datensätze eh ausgeschlossen) Ausserdem, hast du Beitrag #4 beachtet?
SQL-Code:
Und lass mal die Limit-Klausel weg...
SELECT
T1.ID AS Name, T1.Partial DIV 3600 AS Partial, T1.Total DIV 3600 AS Total, T2.Unit AS Unit FROM Tabelle1 T1 INNER JOIN Tabelle2 T2 ON T1.ID = T2.ID WHERE T2.Unit = 'hours' UNION ALL SELECT T1.ID AS Name, T1.Partial AS Partial, T1.Total AS Total, T2.Unit AS Unit FROM Tabelle1 T1 INNER JOIN Tabelle2 T2 ON T1.ID = T2.ID WHERE T2.Unit = '' ORDER BY Name ASC |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Warum so kompliziert?
SQL-Code:
SELECT t1.id AS name,
CASE WHEN t2.unit = 'hours' THEN t1.partial DIV 3600 ELSE t1.partial END AS partial, CASE WHEN t2.unit = 'hours' THEN t1.total DIV 3600 ELSE t1.total END AS total, t2.unit AS unit FROM tabelle1 t1 INNER JOIN tabelle2 t2 ON t1.id = t2.id ORDER BY name LIMIT 10000 |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
tsteinmaurers bzw. Omatas Vorschlag funktioniert wunderbar.
Anscheinend hat UniDac wirklich Probleme mit UNION, da alle anderen Vorschläge den gleichen Fehler zur Folge hatten. Danke an alle, es ist einfach Spitze wie schnell man hier Hilfe bekommt. :dp: |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Wobei das genau die Lösung war, welche Thomas unter #5 vorgeschlagen hat
|
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Jo, ich hatte mir das auch schon angeschaut,
Omata hat es hier aber mustergleich präsentiert, weswegen ich auf seinen Eintrag verwiesen habe. (Edit: vorherigen Post editiert) |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Hallo Markus,
richtig, aber ich war zu faul ein lauffähiges Beispiel zu liefern. :-D |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Es ist immer die Frage, wer der jenige seis sollte, der sich die Mühe macht, der Fragesteller oder der Helfende :zwinker:
|
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Ohne hier jetzt eine Diskussion starten zu wollen...
Es ist hier also nicht erwünscht konkrete Beispiele zu liefern, es sei denn man ist der der das Problem hat und die Frage formuliert hat? Es ist nicht erlaubt Befehle, Ideen oder sonst etwas aus vorherigen Posts zu entnehmen, diese zu erweitern oder zu konkretisieren? Schade, dass man diese Schlussfolgerungen aus dieser Diskussion ziehen muss, naja ich habe diese Anmerkungen zur Kenntnis genommen und werde (versuchen) mich in Zukunft dran zuhalten. Ihr schafft es immer wieder einem jegliche Illusionen zu nehmen, das ist echt schade... |
Re: SQL Vereinfachung einer Union Query wegen UniDac Problem
Omata,
du hast meine vollständige Unterstützung, wenn du lauffähige Beispiele postest. In der Regel mach ich das auch, aber diesmal halt nur der Hinweis auf CASE, um den Originalposter auf die richige Fährte zu bringen. Also, nur weiter so und feel free, vollständige Lösungen zu posten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz