AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL KnowHow fehlt

Ein Thema von p80286 · begonnen am 19. Aug 2010 · letzter Beitrag vom 19. Aug 2010
Antwort Antwort
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#1

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 13:47
Mit zwei selects erhalte ich zunächst zwei Ergebniszeilen, Du glaubst doch nicht, daß damit meine Vorgesetzten zufrieden sind (ich bin doch nicht SAP)
Und was spricht dagegen, die Ergebnisse der beiden Abfragen einfach zu JOINen? Dann hast du als Ergebnis eine Zeile mit zwei Spalten...
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 13:49
Zitat:
Und was spricht dagegen, die Ergebnisse der beiden Abfragen einfach zu JOINen? Dann hast du als Ergebnis eine Zeile mit zwei Spalten...
Ähhhh wie?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#3

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 14:04
Was mir noch einfiele (keine Ahnung, ob das funktioniert):
SQL-Code:
SELECT
  A.Summe, B.Summe
FROM
  (SELECT COUNT(*) AS Summe
   FROM ...
   WHERE ...) A,
  (SELECT COUNT(*) AS Summe
   FROM ...
   WHERE ...) B
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#4

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 14:08
[QUOTE=p80286;1043363]
Zitat:
Ähhhh wie?
Zum Bleistift so (in Oracle kenne ich mich nicht aus, daher so, wie ichs in MS SQL gemacht hätte, kA ob das ein großer Unterschied ist ):
SQL-Code:
select
   a.cnt as Anzahl,
   b.cnt as Anzahl2010
From
(select
   COUNT(*) as cnt
from
   ErgName n inner join ErgDate d on
   n.ErgID = d.ErgID) a

cross join

(select
   COUNT(*) as cnt
from
   ErgName n inner join ErgDate d on
   n.ErgID = d.ErgID
where YEAR(d.ErgDate) = 2010) b
Mal ganz davon abgesehen davon, dass ich gar nicht verstehe, warum der join zwischen ErgName und ErgDate überhaupt gemacht wird... du könntest ja auch gleich die IDs in ErgDate zählen.

Evtl ginge es auch so:
SQL-Code:
select
   SUM(Anzahl) as Anzahl, SUM(Anzahl_2010) as Anzahl_2010
From
(select
   YEAR(ErgDat) as Jahr,
   COUNT(ErgID) as Anzahl,
   case when YEAR(Ergdate) = 2010 then COUNT(ErgID) else 0 as Anzahl_2010
From ErgDate
group by YEAR(ErgDat), COUNT(ErgID)) a
//Edit:
Was mir noch einfiele (keine Ahnung, ob das funktioniert):
[...]
Jo, wie gesagt: Die zwei Einzelabfrage joinen
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;

Geändert von leddl (19. Aug 2010 um 14:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 14:10
Hupsa, ich bin das neue Forum wohl noch nicht ganz gewöhnt... man sollte schon auch auf Bearbeiten drücken, wenn man editieren will, statt zu zitieren
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;

Geändert von leddl (19. Aug 2010 um 14:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 14:45
Vielen Dank!

Jetzt ist das dabei heraus gekommen (da muß ich aus null noch 0 machen), ist aber eine Zeile mit zwei "Zählspalten"

SQL-Code:
select tab1.wert1,tab1.wert2....,z2010,ztotal
from tab1
    ,(select tab2.id1, count(ide) ztotal from tab2 .....) tbs1
    ,(select tab2.id1, count(ide) z2010 from tab2 where datum>to_date('20091231','YYYYMMDD').....) tbs2
where tab1.id2=tbs1.id1(+)
  and tab1.id2=tbs2.id1(+)
und "Entschuldigung", die Werte, die aus der 1. Tabelle (namen) stammen hatte ich unterschlagen, weil sie nichts mit dem Problem zu tun hatten.

Vielen Dank nochmal

K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von mkinzler (19. Aug 2010 um 16:09 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
omata

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

AW: SQL KnowHow fehlt

  Alt 19. Aug 2010, 17:21
...da muß ich aus null noch 0 machen...
Das geht mit der Funktion NVL.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:59 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 by Thomas Breitkreuz