![]() |
Datenbank: ORACLE • Version: 9 • Zugriff über: TDatabase
SQL Probelm !!! -> Group by ?
Hallo zusammen,
komme einfach nicht weiter: Was ist hier dran falsch:
SQL-Code:
Wenn ich anstatt 'MONAT' bei 'GROUP BY' das 'ABLESEDATUM' gruppiere ist alles OK. Wenn ich aber wie oben den 'MONAT' eintragen welchen ich über 'AS' definiere kennt er die Spalte 'MONAT' nicht.
SELECT EXTRACT(MONTH FROM ABLESEDATUM) AS MONAT, COUNT(ORT) AS ANZAHL FROM SYSSIGMA.ZST_2BMOBIL
WHERE AUFTRAGSARTEN_TEXT LIKE '%Turnuswechsel%' AND ABLESEDATUM <= '31.12.2006' AND ABLESEDATUM >= '01.01.2006' GROUP BY MONAT Bitte helft mir Gruss Holger |
Re: SQL Probelm !!! -> Group by ?
Soweit ich weiß, kann man GROUP BY nur für Nicht-Gruppenfunktionen benutzen (also nicht für Count, etc.).
|
Re: SQL Probelm !!! -> Group by ?
Hallo Holger,
SQL ist nicht gleich LocalSQL - du arbeitest mit LocalSQL und dort darf die GROUP BY Klausel lediglich Spalten- oder Korrelationsnamen aufweisen, keine Funktionsausdrücke. Freundliche Grüße |
Re: SQL Probelm !!! -> Group by ?
Zitat:
|
Re: SQL Probelm !!! -> Group by ?
Danke für die Unterstützung:
Meine Lösung:
SQL-Code:
So funktioniert es ...
SELECT MONTH(ABLESEDATUM) AS MONAT, COUNT(AUFTRAG_ID) AS ANZAHL FROM SYSSIGMA.ZST_2BMOBIL
WHERE AUFTRAGSARTEN_TEXT LIKE '%Turnuswechsel%' AND ABLESEDATUM <= '31.12.2006' AND ABLESEDATUM >= '01.01.2006' GROUP BY MONTH(ABLESEDATUM) Habe da aber noch eine Frage: Diese TQuery habe ich mit einem TDBChart verbunden. Am TDBChart werden nur auf der X-Achse 1,2,3,4,5,6,7,8,9,10,11,12 angezeigt. Wie bekomme ich dort Januar, Februar ... u.s.w. hin. Gruss Holger |
Re: SQL Probelm !!! -> Group by ?
Zwei Möglichkeiten:
1. Du verbastelst die Monatsnamen im SELECT. Oracle kenn ich nicht, aber unter MSSQL sieht das dann so aus:
SQL-Code:
2. Du erzeugst aus dem Monat (ist ja eine Zahl) ein Datum, z.B. '1.<Monat>.2006'. Im TChart wählst Du dann als Achsenformat 'mmm' oder so ähnlich. Ich habe dafür in MSSQL eine UDF geschrieben und gruppiere so:
select
case Month(Datum) when 1 then 'Januar' when 2 then 'Februar' ... when 12 then 'Dezember' end as Monat, ... from ... group by case Month(Datum) when 1 then 'Januar' when 2 then 'Februar' ... when 12 then 'Dezember' end
SQL-Code:
Diese Funktion sieht so aus (Sind eigentlich zwei):
select
dbo.FirstOfMonth(Datum), Count (*) from ... group by dbo.FirstOfMonth(Datum)
SQL-Code:
DateOnly schnippelt den Zeit-Anteil weg.
CREATE FUNCTION [dbo].[DateOnly] (@Date DateTime)
RETURNS Datetime AS BEGIN Return cast (floor (cast (@Date as float)) as DateTime) END CREATE FUNCTION [dbo].[FirstOfMonth] (@Date DateTime) RETURNS DateTime AS BEGIN Return dbo.DateOnly (dateadd (day,-datepart (day,@Date) + 1, @Date)) END FirstOfMonth zieht vom aktuellen Datum 'Tag-1' Tage ab. Logischerweise ist das dann der 1.des Monats. |
Re: SQL Probelm !!! -> Group by ?
Hallo Markus,
Zitat:
@Holger: Setze einfach den Stil der Achsenbeschriftung auf Text und übersetze die Monatszahl in den MonthShortName (SysUtils) im Ereignis OnGetAxisLabel(). Freundliche Grüße |
Re: SQL Probelm !!! -> Group by ?
Meine Güte,
soviel Input. Das schaue ich mir mal in Ruhe an. Werde das bestimmt brauchen können. Damit es jetzt schnell geht: Zitat:
2. Wie mache ich die Umsetzung für die Übersetzung. Im OI oder im Code ? Und wie genau mache ich das ? Gruss Holger P.S.: Delphi ist für mich relativ neu |
Re: SQL Probelm !!! -> Group by ?
Zitat:
Du erzeugst dir eine Monatstabelle mit Nummer des Monats, Monatsname und Monats-Kurzname: 1 |Januar|Jan 2 |Februar|Feb ... 12|Dezember|Dez Diese Tabelle wird dann mit deiner Ergebnistabelle mit INNER JOIN verbunden. Ich würde die Monatsnamen gleich in Deutsch, Englisch und Französisch vorsehen. |
Re: SQL Probelm !!! -> Group by ?
Alles klar, das mit case funktioniert nicht ...
Da sagt er immer 'Dezmeber' ist kein gültiger Gleitkommawert ??? Vielleicht kann man mir am schnellsten mit der Umwandlung in Delphi helfen. Wie setze ich das genau um. Dieses hier: Zitat:
Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 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