AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Vereinfachung einer Union Query wegen UniDac Problem
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Vereinfachung einer Union Query wegen UniDac Problem

Ein Thema von alphaflight83 · begonnen am 8. Okt 2009 · letzter Beitrag vom 12. Okt 2009
Antwort Antwort
Seite 2 von 3     12 3      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 8. Okt 2009, 17:33
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
Heiko
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 8. Okt 2009, 17:39
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:
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
Und lass mal die Limit-Klausel weg...
Andreas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 8. Okt 2009, 22:24
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
  Mit Zitat antworten Zitat
Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
148 Beiträge
 
Delphi 12 Athens
 
#14

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 9. Okt 2009, 08:59
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.
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 9. Okt 2009, 09:03
Wobei das genau die Lösung war, welche Thomas unter #5 vorgeschlagen hat
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
148 Beiträge
 
Delphi 12 Athens
 
#16

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 9. Okt 2009, 09:33
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)
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#17

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 9. Okt 2009, 12:56
Hallo Markus,

richtig, aber ich war zu faul ein lauffähiges Beispiel zu liefern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 9. Okt 2009, 13:01
Es ist immer die Frage, wer der jenige seis sollte, der sich die Mühe macht, der Fragesteller oder der Helfende
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 11. Okt 2009, 20:39
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...
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#20

Re: SQL Vereinfachung einer Union Query wegen UniDac Problem

  Alt 11. Okt 2009, 20:45
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz