You are not logged in.
Pages: 1
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
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
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
@Eduardo: muss ich erst schauen, das sind eigene SQL Abfragen:-)
@Jan: dachte auch schon daran, werde das mal probieren.....
Offline
#
# 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
mhhh, schon komisch, da wir eigentlich gegen eine MariaDB arbeiten.......
Offline
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
Yeap, hast recht, Denkfehler:-) Unsere Datenquelle ist ne Maria DB.
Ist genau das wie o.g. eingetragen.
Offline
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
Pages: 1