Skip to content

Instantly share code, notes, and snippets.

@meitinger
Created June 10, 2013 11:33
Show Gist options
  • Save meitinger/5748131 to your computer and use it in GitHub Desktop.
Save meitinger/5748131 to your computer and use it in GitHub Desktop.
Query for internal use.
SELECT
IF (
Verkaufsbeleg_Pos.Artikelnummer LIKE '1_e' OR Verkaufsbeleg_Pos.Artikelnummer LIKE '1_e-%',
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
) / 10000,
0
) AS "Taxierte Gäste",
IF (
Verkaufsbeleg_Pos.Artikelnummer LIKE '1_e%',
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
) / 10000,
0
) AS "Taxierte Nächte",
IF (
(Verkaufsbeleg_Pos.Artikelnummer LIKE '1__' OR Verkaufsbeleg_Pos.Artikelnummer LIKE '1__-%') AND SUBSTRING(Verkaufsbeleg_Pos.Artikelnummer,3,1) <> 'e',
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
) / 10000,
0
) AS "Nicht-Taxierte Gäste",
IF (
Verkaufsbeleg_Pos.Artikelnummer LIKE '1__%' AND SUBSTRING(Verkaufsbeleg_Pos.Artikelnummer,3,1) <> 'e',
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
) / 10000,
0
) AS "Nicht-Taxierte Nächte",
Verkaufsbeleg_Kopf.KasseNummer AS Kasse,
IF (Nation.EU_Lieferschwelle = 1, Nation.Bezeichnung, 'Übriges Ausland') AS Nation,
Verkaufsbeleg_Kopf.Plz AS PLZ,
IF (
LENGTH(Verkaufsbeleg_Kopf.Plz) = 4 AND Nation.Bezeichnung = 'Österreich',
IF (Verkaufsbeleg_Kopf.Plz BETWEEN 1000 AND 1999, '1000-1999 Wien', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 2000 AND 3999, '2000-3999 Niederösterreich', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 4000 AND 4999, '4000-4999 Oberösterreich', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 5000 AND 5999, '5000-5999 Salzburg', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 6000 AND 6699, '6000-6699 Tirol', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 6700 AND 6999, '6700-6999 Vorarlberg', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 7000 AND 7999, '7000-7999 Burgenland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 8000 AND 8999, '8000-8999 Steiermark', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 9000 AND 9899, '9000-9899 Kärnten', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 9900 AND 9999, '9900-9999 Tirol', 'Andere')))))))))),
IF (
LENGTH(Verkaufsbeleg_Kopf.Plz) = 5 AND Nation.Bezeichnung = 'Deutschland',
IF (Verkaufsbeleg_Kopf.Plz BETWEEN 01000 AND 09999, '01000-09999 Ostdeutschland',IF (Verkaufsbeleg_Kopf.Plz BETWEEN 10000 AND 14199, '10000-14199 Berlin', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 14200 AND 14999, '14200-14999 Ostdeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 14400 AND 14499, '14400-14499 Ostdeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 15000 AND 19999, '15000-19999 Ostdeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 20000 AND 31999, '20000-31999 Norddeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 32000 AND 33999, '32000-33999 Nordrhein-Westfalen', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 34000 AND 36999, '34000-36999 Mitteldeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 37000 AND 38999, '37000-38999 Norddeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 39000 AND 39999, '39000-39999 Ostdeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 40000 AND 48999, '40000-48999 Nordrhein-Westfalen', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 49000 AND 49999, '49000-49999 Norddeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 50000 AND 53999, '50000-53999 Nordrhein-Westfalen', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 54000 AND 56999, '54000-56999 Mitteldeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 57000 AND 59999, '57000-59999 Nordrhein-Westfalen', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 60000 AND 69999, '60000-69999 Mitteldeutschland', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 70000 AND 79999, '70000-79999 Baden-Württemberg', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 80000 AND 87999, '80000-87999 Bayern', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 88000 AND 88999, '88000-88999 Baden-Württemberg', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 89000 AND 97999, '89000-97999 Bayern', IF (Verkaufsbeleg_Kopf.Plz BETWEEN 98000 AND 99999, '98000-99999 Ostdeutschland', 'Andere'))))))))))))))))))))),
'Andere'
)
) AS "Region",
Verkaufsbeleg_Pos.Artikelnummer AS Artikel,
IF (
Verkaufsbeleg_Pos.Artikelnummer LIKE '1__-%',
SUBSTRING(Verkaufsbeleg_Pos.Artikelnummer,1,3),
IF (
Verkaufsbeleg_Pos.Artikelnummer LIKE '1__f-%',
SUBSTRING(Verkaufsbeleg_Pos.Artikelnummer,1,4),
Verkaufsbeleg_Pos.Artikelnummer
)
) AS "Kombinierte Artikel",
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
) / 10000 AS Menge,
(Verkaufsbeleg_Pos.NettoEinzelKopfrab_1 * IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('R','E'),
Verkaufsbeleg_Pos.Menge,
IF (
Verkaufsbeleg_Kopf.KassePrefix IN ('G','A'),
-Verkaufsbeleg_Pos.Menge,
0
)
)) / 100000000 AS Brutto,
Vertreter.Name1 AS Verkäufer,
Verkaufsbeleg_Kopf.Datum AS Datum,
YEAR(Verkaufsbeleg_Kopf.Datum) AS Jahr,
MONTH(Verkaufsbeleg_Kopf.Datum) AS Monat
FROM
Nation Nation
RIGHT JOIN
Verkaufsbeleg_Kopf Verkaufsbeleg_Kopf INNER JOIN
Verkaufsbeleg_Pos Verkaufsbeleg_Pos
LEFT JOIN
Vertreter Vertreter
ON Vertreter.ID = Verkaufsbeleg_Pos.Vertreter_1_ID
ON Verkaufsbeleg_Pos.Belegkopfident_ID = Verkaufsbeleg_Kopf.Belegkopfident_ID
ON Nation.ID = Verkaufsbeleg_Kopf.Nation_ID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment