AGB  ·  Datenschutz  ·  Impressum  







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

Group by "Datum" Problem

Ein Thema von cugar · begonnen am 6. Okt 2010 · letzter Beitrag vom 6. Okt 2010
Antwort Antwort
Seite 1 von 3  1 23      
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#1

Group by "Datum" Problem

  Alt 6. Okt 2010, 06:34
Datenbank: InterBase • Version: 7.5 • Zugriff über: Delphi 2006 prof.
Hi,
bin gerade am Suchen und finde keine Lösung für mein Problem.
Meine Tabelle enthält u.a. folgendes:

DOSENMENGE SNH_DATUM
15 15.08.2010
24 25.08.2010

11 05.09.2010

Jetzt möchte ich es nach Monaten gruppieren, InterBase meldet leider nur Fehler.

SELECT
SUM(SNH_DOSENMENGE) as DOSENMENGE, Extract (MONTH from SNH_DATUM) as MONAT
FROM SNACK_HAUPT
GROUP BY MONAT <- Fehler: was ist MONAT?
..oder GROUP BY Extract (MONTH from SNH_DATUM) <- Extract unerlaubt
Die beiden Sachen scheinen in anderen Datenbanken zu funktionieren, wie muss man es in InterBase machen??

Ich möchte wissen, wie viele Dosen in einzelnen Monaten (oder Jahren) verkauft wurden.

Viele Grüsse
  Mit Zitat antworten Zitat
Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 07:33
Ich habe das Problem bisher immer mit dem Umweg über einen View gelöst. Bei dem Select auf den View kannst du dann dein group by Monat machen.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 07:40
Oder so
SQL-Code:
SELECT
     SUM(SNH_DOSENMENGE) as DOSENMENGE,
     Extract (MONTH from SNH_DATUM) as MONAT
FROM SNACK_HAUPT
GROUP BY Extract (MONTH from SNH_DATUM)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")

Geändert von mkinzler ( 6. Okt 2010 um 09:27 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#4

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 07:46
Danke, versuche es über View.

An alzaimar:
bzg. GROUP BY Extract (MONTH from SNH_DATUM)

Wie ich bereits oben vermerkt habe: Extract hinter Group by führt zum Fehler bei InterBase
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 08:53
Hallo cugar,

alzaimar meinte bestimmt:

SQL-Code:
SELECT
     EXTRACT (MONTH FROM snh_datum) AS monat,
     SUM(snh_dosenmenge) AS dosenmenge,
FROM snack_haupt
WHERE EXTRACT (YEAR FROM snh_datum) = :year
GROUP BY 1
ORDER BY 1 DESC
Für Auswertungen greifst Du aber trotzdem über eine VIEW auf die Daten zu - Du musst dann bei Änderungen an der Basis-Tabelle nur die View anpassen.

Grüße vom marabu

Geändert von mkinzler ( 6. Okt 2010 um 09:27 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#6

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 09:18
Geht auch nicht, Token Unknow: 1
Weiß manche Datenbanken erlauben es mit Zahlen zu machen, Interbase will nicht

Ich verwende DBChart und hab da es angebunden. Bei DBChart kann man es auswählen wie es gruppiert werden soll (Jahr, Monat, Woche usw), verändert DBChart für sich irgendwie die SQL-Anweisung(denn da wird es richtig angezeigt)?

Geändert von cugar ( 6. Okt 2010 um 09:21 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 09:28
Welches 1 mahnt er an?
@Achim: Welcome back!
Markus Kinzler
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#8

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 09:31
Zeile 6
GROUP BY 1
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 09:44
Versuch es mal mit einer Derived Table:
SQL-Code:
SELECT
    s.monat,
    Sum(s.snh_dosenmenge) as dosenmenge
from
    (
        select
            EXTRACT (MONTH FROM snh_datum) AS monat,
            EXTRACT (YEAR FROM snh_datum) as jahr
            snh_dosenmenge
        FROM
            snack_haupt) s
WHERE
    s.jahr = :year
GROUP BY
    monat
ORDER BY
    Monat DESC;
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

AW: Group by "Datum" Problem

  Alt 6. Okt 2010, 09:52
Tatsächlich unterstützt auch das aktuelle Interbase noch keine Spaltennummern in der GROUP BY Klausel, wohl aber in der ORDER BY Klausel:

Zitat:
order_list =
{col | int} [COLLATE collation]
[ASC[ENDING] | DESC[ENDING]]
[, order_list ...]
Schade eigentlich.

@Markus:
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 23:46 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