Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Iterative Abfrage-MySQL

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von cs3838, 17 Juni 2014.

  1. cs3838

    cs3838 Benutzer

    Hallo Leute. Ich beschäftige mich seit neuerem mit MySql.. Ich möchte gerne eine Iterative Abfrage erstellen .. Es geht darum, Scan´s von Kunden Monatlich aufzusummieren.. Ich hab es selber als Abfrage hinbekommen , jedoch musste ich immer wieder alle Monatsabrechnung neu abfragen.. Kann mir jemand helfen?
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Zeig, was Du an Tabellen und Daten hast, was herauskommen soll und was Du versucht hast bisher.
     
  3. cs3838

    cs3838 Benutzer

    Erst Mal ein riesen danke schön dass du mir hilst :)

    Code:
    SELECT `u`.`id` AS `Id` , `u`.`businessName` AS `BusinessName` , `u`.`createdOn` AS `AktiviertSeit` ,
    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND DATE_ADD(`u`.`createdOn` ,Interval 1 month) > `scancode`.`scanDateTime`
    ) AS `ScansMonat 1` ,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 2 month) > `scancode`.scanDateTime) - (DATE_ADD(`u`.`createdOn` ,Interval 1 month) > `scancode`.scanDateTime)
    ) AS `ScansMonat 2`
    ,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 3 month) > `scancode`.`scanDateTime`) - (DATE_ADD(`u`.`createdOn` ,Interval 2 month) > `scancode`.`scanDateTime`)
    ) AS `ScansMonat 3` ,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 4 month) > `scancode`.`scanDateTime`) - (DATE_ADD(`u`.`createdOn` ,Interval 3 month) > `scancode`.`scanDateTime`)
    ) AS `ScansMonat 4`,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 5 month) > `scancode`.`scanDateTime`)-(DATE_ADD(`u`.`createdOn` ,Interval 4 month) > `scancode`.`scanDateTime`)
    ) AS `ScansMonat 5`,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 6 month) > `scancode`.`scanDateTime`) - (DATE_ADD(`u`.`createdOn` ,Interval 5 month) > `scancode`.`scanDateTime`)
    ) AS `ScansMonat 6` ,

    (
    SELECT count( `qrsjetty`.`scancode`.`id` )
    FROM `qrsjetty`.`scancode`
    WHERE `qrsjetty`.`scancode`.`barCode_id`
    IN (
    SELECT `qrsjetty`.`barcode`.`id`
    FROM `qrsjetty`.`barcode`
    WHERE (
    `qrsjetty`.`barcode`.`clientAdminUser_id`=`u`.`id`
    )
    )
    AND (DATE_ADD(`u`.`createdOn` ,Interval 7 month) > `scancode`.`scanDateTime`) - (DATE_ADD(`u`.`createdOn` ,Interval 6 month) > `scancode`.`scanDateTime`)
    ) AS `ScansMonat 7`

    FROM `qrsjetty`.`user` `u`
    WHERE `u`.`id` = 119
    OR `u`.`id` = 29
    ORDER BY `u`.`createdOn` ASC
     
    ukulele gefällt das.
  4. cs3838

    cs3838 Benutzer

    Also es soll das rauskommen was ich als code gepostet habe.. Jedoch soll die Abfrage iterativ sein..
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Sorry, aber das sieht gruselig aus. Und ich sehe auch nicht die Definition Deiner Tabellen und auch keine Beispieldaten. Und raus kommen soll sicher nicht so ein gruseliges Statement, sondern irgend welche Zahlen. Und ja: es gibt auch Code-Tags, um sowas in lesbar hier zu posten.
     
  6. ukulele

    ukulele Datenbank-Guru

    Sry aber für den Grusel-Code gibt es ein Like weil ich mir akretschmers Gesicht vorstellen kann :)

    Poste am besten nur Beispieldaten und was raus kommen soll (beides bitte mit Spaltenbeschriftung).
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden