#1 2017-02-13 13:41:24

rahmsm
Member
Registered: 2017-02-08

Syntaxfehler-MySQL?

Hi,
wir haben von der Communityedition zur Enterprise gewechselt. Nun wollten wir Pivot-Tabellen zu den bereits erstellten Reports hinzufügen. Bei vielen Report stosse ich aber immer wieder auf Fehler, bzw. Abbrüche, die "normalen" dynamischen Listen funktionieren aber.
Fehlermeldung: MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '! AND !2! GROUP BY rechnung_nummer_txt UNION S' at line 25

Abfrage:
SELECT Monat, mwst_prozent,preisBrutto,preisNetto,Laender_Name2 Land, saleschannel, Zahlart
        FROM
        ( SELECT Monat, mwst_prozent,sum(preis) preisBrutto, sum(round(preis/mwst_prozent,2)) preisNetto, Laender_Name2, saleschannel, Zahlart
         FROM(
          SELECT auftrag_mwst mwst_prozent,
             auftrag_wert preis,rechnung_nummer_txt RE, Laender_Name2, DATE_FORMAT(rechnung_datum, "%Y-%m") Monat, auftrag_versandkosten Versand, ver_auf_a_menge Menge,
             IF(cs.shop_id IS NOT NULL, cs.shop_name, IF(eacc.ebay_accounts_id IS NOT NULL, eacc.ebay_accounts_username, channel.partner_name)) salesChannel,
             za.zahlarten_name Zahlart
             FROM   shop.tbl_auftrag
             INNER JOIN  shop.tbl_verbindung_auftrag_artikel ON ver_auf_a_auftrag = auftrag_id
             INNER JOIN wawi.tbl_rechnung on rechnung_herkunft_id=auftrag_id
             INNER JOIN  wawi.tbl_Laender on auftrag_l_land=Laender_ID
             LEFT JOIN shop.tbl_kunden_btob_UstId ON auftrag_k_id = kunden_btob_UstId_kundenId
                                                        AND (kunden_btob_UstId_geloeschtAm IS NULL OR kunden_btob_UstId_geloeschtAm >= ver_auf_a_an_das_lager)
                                                        AND IF(auftrag_rechnungskorrektur IS NOT NULL, kunden_btob_UstId_gueltig_ab, kunden_btob_UstId_created) <= ver_auf_a_an_das_lager
                                                        AND kunden_btob_UstId_Land = Laender_Kuerzel
             LEFT JOIN wawi.tbl_LaenderMWST ON LaenderMWST_LaenderKuerzel = Laender_Kuerzel
                    AND rechnung_datum BETWEEN LaenderMWST_DatumVon AND LaenderMWST_DatumBis
             LEFT JOIN shop.tbl_zahlarten za ON auftrag_zahlart = za.zahlarten_id
             LEFT JOIN shop.tbl_partner channel ON channel.partner_id = auftrag_partner
             LEFT JOIN shop.countryshops cs ON cs.shop_id = auftrag_shop
             LEFT JOIN shop.tbl_auftrag_EbayPos ebay ON ebay.auftrag_EbayPos_OrderLineItemID = ver_auf_a_Ref
             LEFT JOIN plattformen.tbl_ebay_accounts eacc ON eacc.ebay_accounts_id = ebay.auftrag_EbayPos_account

             WHERE rechnung_herkunft = "shop" AND rechnung_datum BETWEEN ${Startdate} AND ${Enddate}
             GROUP BY rechnung_nummer_txt
          UNION
          SELECT IF(Laender_MWSTgrenze > 0,
             IF(Laender_ID = 39, 1.19,
              IF(CHAR_LENGTH(Zinfo) > 5, 1,
               IF(LaenderMWST_MWST IS NULL, 1.19, LaenderMWST_MWST /100 +1))), 1) mwst_prozent,
             Gruppensumme preis, rechnung_nummer_txt RE,Laender_Name2, DATE_FORMAT(rechnung_datum, "%Y-%m") Monat, Versandkosten Versand, Menge,
             plattform salesChannel,
             plattform Zahlart
             FROM   emailtexte_be.auktionsdaten
             INNER JOIN wawi.tbl_rechnung ON rechnung_herkunft_id=UID
             INNER JOIN  wawi.tbl_Laender on lland=Laender_afterbuy
             LEFT JOIN wawi.tbl_LaenderMWST ON LaenderMWST_LaenderKuerzel = Laender_Kuerzel
                AND rechnung_datum BETWEEN LaenderMWST_DatumVon AND LaenderMWST_DatumBis
             WHERE rechnung_herkunft = "ab" AND rechnung_datum BETWEEN ${Startdate} AND ${Enddate}
             GROUP BY rechnung_nummer_txt
          ) qry
         GROUP BY Monat, Laender_Name2,mwst_prozent, salesChannel, Zahlart
       )
       qry_all
  GROUP BY Monat, Land,mwst_prozent, salesChannel, Zahlart


Ein bisschen umfangreich, aber vielleicht hätte jemand eine Idee, woran es generell liegen kann?! Unsere Testphase läuft noch bis zum 31.3..........Unsere Kaufentscheidung hängt natürlich davon ab, ob das funktioinieren kann, oder nicht.

Gruss,
Micha

Offline

#2 2017-03-01 10:14:08

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Syntaxfehler-MySQL?

Hallo Micha,

wie sieht die persistence.properties Datei aus?
Ist das die von reportserver-erstellte SQL-Abfrage oder die eigene Abfrage?

Viele Grüße,
Eduardo

Offline

#3 2017-03-01 10:30:46

jalbrecht
Administrator
Registered: 2016-10-21

Re: Syntaxfehler-MySQL?

Hallo Micha,
als erstes würde ich mal den "group by rechnung_nummer_txt" aus beiden Teilen des Unions herausnehmen. Was soll der bedeuten ?

Gruß Jan

Offline

#4 2017-03-01 11:54:18

rahmsm
Member
Registered: 2017-02-08

Re: Syntaxfehler-MySQL?

@Eduardo: muss ich erst schauen, das sind eigene SQL Abfragen:-)
@Jan: dachte auch schon daran, werde das mal probieren.....

Offline

#5 2017-03-01 15:24:56

rahmsm
Member
Registered: 2017-02-08

Re: Syntaxfehler-MySQL?

#
# file: persistence.properties
# description: This file contains the database settings for ReportServer


# Credentials
hibernate.connection.username=reportserver
hibernate.connection.password=*****


# MySQL
# hibernate.dialect=net.datenwerke.rs.utils.hibernate.MySQL5Dialect
# hibernate.connection.driver_class=com.mysql.jdbc.Driver
# hibernate.connection.url=jdbc:mysql://localhost:3306/reportserver


# MariaDb
# hibernate.dialect=net.datenwerke.rs.utils.hibernate.MariaDbDialect
# hibernate.connection.driver_class=org.mariadb.jdbc.Driver
# hibernate.connection.url=jdbc:mariadb://localhost:3306/reportserver


# PostgreSQL
hibernate.dialect=net.datenwerke.rs.utils.hibernate.PostgreSQLDialect
hibernate.connection.driver_class=org.postgresql.Driver
hibernate.connection.url=jdbc:postgresql://localhost/reportserver


# Oracle
# hibernate.dialect=net.datenwerke.rs.utils.hibernate.Oracle10gDialect
# hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
# hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:reportserver
# hibernate.default_schema=


# SQL Server
# hibernate.dialect=net.datenwerke.rs.utils.hibernate.SQLServer2008Dialect
# hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
# hibernate.connection.url=jdbc:sqlserver://localhost;databaseName=reportserver


# DB2
# hibernate.dialect=net.datenwerke.rs.utils.hibernate.DB2Dialect
# hibernate.connection.driver_class=com.ibm.db2.jcc.DB2Driver
# hibernate.connection.url=jdbc:db2://localhost:50000/TEST


# Connection pool settings.
# Hibernate uses the C3P0 connection pool. The following properties allow to
# configure C3P0 as used by Hibernate. Note that this does not have any effect
# on the connection pool used by ReportServer for handling reporting.
#
# If no changes are made here, then the default settings are active
#
# hibernate.c3p0.acquire_increment=5
# hibernate.c3p0.idle_test_period=60
# hibernate.c3p0.timeout=3600
# hibernate.c3p0.max_size=30
# hibernate.c3p0.max_statements=0
# hibernate.c3p0.min_size=5

Offline

#6 2017-03-01 15:26:07

rahmsm
Member
Registered: 2017-02-08

Re: Syntaxfehler-MySQL?

mhhh, schon komisch, da wir eigentlich gegen eine MariaDB arbeiten.......

Offline

#7 2017-03-01 15:37:10

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Syntaxfehler-MySQL?

ok, aber die interne DB scheint eine PostgreSQL Datenbank zu sein. Das kannst du im Admin->Datasources-> Internal datasources prüfen.. wie sieht die Konfiguration hier aus?

Gruss,
Eduardo

Offline

#8 2017-03-01 16:04:07

rahmsm
Member
Registered: 2017-02-08

Re: Syntaxfehler-MySQL?

Yeap, hast recht, Denkfehler:-) Unsere Datenquelle ist ne Maria DB.
Ist genau das wie o.g. eingetragen.

Offline

#9 2017-03-01 16:10:16

eduardo
Administrator
Registered: 2016-11-01
Website

Re: Syntaxfehler-MySQL?

Hallo,

oben steht nur die PostgreSQL Konfiguration, nicht die MariaDB Konfiguration, aber das ist nicht mehr wichtig, da du im reportserver gesehen hast, dass die interne DB PostgreSQL benutzt, und die (normale) Datenquelle MariaDB.

Hast du den Teil "group by rechnung_nummer_txt" herausgenommen?

Gruss,
Eduardo

Offline

Board footer

Powered by FluxBB