ADS 12 Distinct mit Fehler?

Advantage Database Server

Moderator: Moderatoren

ADS 12 Distinct mit Fehler?

Beitragvon UliTs » Mo, 09. Mai 2016 14:08

Hallo allerseits,

in der ADS-Hilfe gibt es dieses Beispiel mit der neuen DISTINCT-Möglichkeit.
Code: Alles auswählen
SELECT
  GROUP_CONCAT( DISTINCT language ORDER BY language )
FROM employees

Ich habe die DISTINCT-Möglichkeit heute erstmals eingesetzt.
Aber dabei ich auf ein Problem gestoßen: wenn die Ergebnisliste aus keinem Datensatz besteht, kommt es bei Einsatz von "Order By" zu einem Fehler:
Code: Alles auswählen
SELECT
  GROUP_CONCAT( DISTINCT language ORDER BY language )
FROM employees
WHERE language='1234'

Ich vermute, es handelt sich um einen Fehler im ADS 12, da dieser Fehler ohne Angabe von "Order By" nicht kommt.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: ADS 12 Distinct mit Fehler?

Beitragvon nightcrawler » Mo, 09. Mai 2016 14:44

Hallo Uli,
das kann ich mit dem Beispiel vom Forentreffen nicht nachvollziehen:
Code: Alles auswählen
SELECT e.branch, GROUP_CONCAT(DISTINCT trim(l.language) ORDER BY language SEPARATOR '; ' ) FROM employees e
  JOIN employee_languages el ON el.employeeid=e.id
  JOIN languages l ON el.languageid=l.id
  WHERE language='123'
GROUP BY 1
--
Joachim
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 248
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach

Re: ADS 12 Distinct mit Fehler?

Beitragvon UliTs » Mo, 09. Mai 2016 15:57

Bei meinem obigen Beispiel kommt die Fehlermeldung
Code: Alles auswählen
poQuery: Error 7200:  AQE Error:  State = HY000;   NativeError = 5068;  [SAP][Advantage SQL Engine][ASA] Error 5068:  There is no current record.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: ADS 12 Distinct mit Fehler?

Beitragvon nightcrawler » Mo, 09. Mai 2016 16:15

Uli,
ohne ein GROUP BY kannst Du gar keine Aggregat Funktion verwenden. Wie sieht die Tabelle aus und was willst Du genau daraus abfragen?
--
Joachim
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 248
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach

Re: ADS 12 Distinct mit Fehler?

Beitragvon UliTs » Mo, 09. Mai 2016 16:32

Hallo Joachim,

ich glaube, dass Du dich irrst :D .
Ohne "Group by" gibt es als Ergebnis halt nur einen Datensatz. Ich möchte für einen Artikel alle Kommissionsnummern (KommNr), die diesen Artikel in ihrer Stückliste benutzen, in einem Feld aufführen. Und zwar eigentlich nach KommNr sortiert (darauf verzichte ich zur Zeit wegen des Problems).
Also:

Code: Alles auswählen
select Group_Concat( DISTINCT trim(cast(KommNr as SQL_Char)) /*MIT order by KommNr KOMMT Fehler*/ ) KommNrn
from Stuecklisten
inner join Komissionen  on Kommissionen.Kom1Id=Stuecklisten.Kom1Id
where Stuecklisten.ATId=1234


Wenn der Artikel in keiner Stückliste vorkommt, kommt es zu diesem Fehler bei Einsatz von "order by".

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2356
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen

Re: ADS 12 Distinct mit Fehler?

Beitragvon nightcrawler » Mo, 09. Mai 2016 20:33

Dann versuche mal, die ATId mit in das Select zu packen:
Code: Alles auswählen
select Stuecklisten.ATId, Group_Concat( DISTINCT trim(cast(KommNr as SQL_Char)) /*MIT order by KommNr KOMMT Fehler*/ ) KommNrn
from Stuecklisten
inner join Komissionen  on Kommissionen.Kom1Id=Stuecklisten.Kom1Id
--where Stuecklisten.ATId=1234
GROUP BY 1
HAVING ATId=1234
--
Joachim
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 248
Registriert: Di, 24. Apr 2012 15:33
Wohnort: 72181 Starzach


Zurück zu ADS

Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot] und 1 Gast