Neuigkeiten:

still alive...

Hauptmenü

einfacher SQL

Begonnen von Powie, 01. September 2006, 10:51:05

Vorheriges Thema - Nächstes Thema

Powie

Wohlgemerkt, das ist womit wir immer wieder mal jonglieren, es ist nicht eine Liste sondern ein einziges SQL Statement  /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />/uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />
 

WITH
 tabelle AS
   (SELECT MONTH(DATE(e.avis_date)) AS monat
          ,CHAR(LEFT(a.ansch4,1),1) AS plz
      FROM ein e
 LEFT JOIN adr_eig a ON e.eig_cust = a.eig_cust
     WHERE e.algorit = 56
       AND DATE(e.avis_date) >= \'01.01.2005\'
       AND DATE(e.avis_date) <\'01.01.2006\'),
ergebnis as
(SELECT     Monat
          ,plz||\'****\' AS plz
          ,COUNT(*) AS calls
   FROM Tabelle
GROUP BY Monat
        ,PLZ),
ergebnis2 AS(
SELECT ergebnis.calls as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 1
UNION all
SELECT 0 as Jan
     ,ergebnis.calls as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 2
UNION all
SELECT 0 as Jan
     ,0 as Feb,ergebnis.calls as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 3
UNION ALL
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,ergebnis.calls as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 4
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,ergebnis.calls as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 5
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,ergebnis.calls AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 6
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,ergebnis.calls as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 7
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,ergebnis.calls as Aug,0 as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 8
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,ergebnis.calls as Sep
     ,0 as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 9
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,ergebnis.calls as Okt,0 as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 10
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,ergebnis.calls as Nov,0 as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 11
UNION all
SELECT 0 as Jan
     ,0 as Feb,0 as Mrz,0 as Apr,0 as Mai,0 AS Jun,0 as Jul,0 as Aug,0 as Sep
     ,0 as Okt,0 as Nov,ergebnis.calls as Dez
     ,monat
     ,ergebnis.plz
     ,ergebnis.calls
 FROM ergebnis
WHERE monat = 12)
SELECT \'0****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'0****\'
UNION
SELECT \'1****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'1****\'
UNION
SELECT \'2****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 THEN NULL else SUM(ergebnis2.jan) end AS JAN,
      case when SUM(ergebnis2.feb)=0 THEN NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'2****\'
UNION
SELECT \'3****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'3****\'
UNION
SELECT \'4****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'4****\'
UNION
SELECT \'5****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'5****\'
UNION
SELECT \'6****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'6****\'
UNION
SELECT \'7****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL ELSE SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL ELSE SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'7****\'
UNION
SELECT \'8****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'8****\'
UNION
SELECT \'9****\' AS PLZ,
      case when SUM(ergebnis2.jan)=0 then NULL else SUM(ergebnis2.jan) END AS JAN,
   case when SUM(ergebnis2.feb)=0 then NULL else SUM(ergebnis2.feb) END AS FEB,
   case when SUM(ergebnis2.mrz)=0 THEN NULL ELSE SUM(ergebnis2.mrz) END AS MRZ,
      case when SUM(ergebnis2.APR)=0 THEN NULL ELSE SUM(ergebnis2.APR) END AS APR,
   case when SUM(ergebnis2.MAI)=0 THEN NULL ELSE SUM(ergebnis2.MAI) END AS MAI,
   case when SUM(ergebnis2.jun)=0 THEN NULL ELSE SUM(ergebnis2.jun) END AS JUN,
      case when SUM(ergebnis2.jul)=0 THEN NULL ELSE SUM(ergebnis2.jul) END AS JUL,
   case when SUM(ergebnis2.aug)=0 THEN NULL ELSE SUM(ergebnis2.aug) END AS AUG,
   case when SUM(ergebnis2.sep)=0 THEN NULL ELSE SUM(ergebnis2.sep) END AS SEP,
      case when SUM(ergebnis2.okt)=0 THEN NULL ELSE SUM(ergebnis2.okt) END AS OKT,
   case when SUM(ergebnis2.nov)=0 THEN NULL ELSE SUM(ergebnis2.nov) END AS NOV,
   case when SUM(ergebnis2.dez)=0 THEN NULL ELSE SUM(ergebnis2.dez) END AS DEZ
 FROM ergebnis2
WHERE plz =\'9****\'
Order by PLZ

mahe

*öhm* sucht euch ein Hobby /uploads/emoticons/icon_e_surprised.gif.a8707b3f35a569cb4cfe563fc72ef78d.gif\" alt=\":-o\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


all your base are belong to us