none
SQL Abfrage RRS feed

  • Frage

  • Moin SQL Entwickler,

    ich habe eine neue Herausforderung. Ein Kunde wurde am 15.05 dreimal versucht zu errechen und bekommt den Status 400. Das selbe Kunde wird am nächsten Tage wieder versuch zu erreichen.

    nun brauche ich die Anzahl der versuche innerhalb erste 24 stunden und am nächsten Tage (siehe Anhang)? 

    kann jemand mir bitte dabei helfen?

    Danke 
    VG
    Faabi 

    Donnerstag, 23. Mai 2019 10:06

Antworten

  • Hi,

    probiers mal so:

    WITH Query AS
    (
    SELECT   CUSTOMER_ID,
             MIN( TIMESTAMP )                  AS MIN_TIMESTAMP,
             DATEADD( D, 1, MIN( TIMESTAMP ) ) AS MID_TIMESTAMP,
             DATEADD( D, 2, MIN( TIMESTAMP ) ) AS MAX_TIMESTAMP
    FROM     Faabi_Test2
    GROUP BY CUSTOMER_ID
    ), FirstDayQuery AS
    (
    SELECT   t.CUSTOMER_ID,
             COUNT( 1 ) AS ANZAHL
    FROM     Faabi_Test2 t
             INNER JOIN Query q ON q.CUSTOMER_ID = t.CUSTOMER_ID
    WHERE    t.TIMESTAMP BETWEEN q.MIN_TIMESTAMP AND q.MID_TIMESTAMP
    GROUP BY t.CUSTOMER_ID
    ), SecondDayQuery AS
    (
    SELECT   t.CUSTOMER_ID,
             COUNT( 1 ) AS ANZAHL
    FROM     Faabi_Test2 t
             INNER JOIN Query q ON q.CUSTOMER_ID = t.CUSTOMER_ID
    WHERE    t.TIMESTAMP BETWEEN q.MID_TIMESTAMP AND q.MAX_TIMESTAMP
    GROUP BY t.CUSTOMER_ID
    )
    SELECT   fdq.CUSTOMER_ID,
             fdq.ANZAHL AS ANZAHL_ERSTER_TAG,
             sdq.ANZAHL AS ANZAHL_ZWEITER_TAG
    FROM     FirstDayQuery fdq
             LEFT OUTER JOIN SecondDayQuery sdq ON fdq.CUSTOMER_ID = sdq.CUSTOMER_ID

    Ist jetzt nur auf die Schnelle so dahingeschrieben, könnte also sicherlich noch verbesserungswürdig sein.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Donnerstag, 23. Mai 2019 10:51
    Moderator

Alle Antworten

  • Womit berechnest du diese Bewertung?

    Wenn du diese Bewertung durchführst, trage einen entsprechenden Zeitmarke in eine neue Tabelle (Methode, Schlüssel, Zeitmarke).
    Dann kannst du diese Tabelle beliebig auswerten.

    Donnerstag, 23. Mai 2019 10:29
  • Hi,

    probiers mal so:

    WITH Query AS
    (
    SELECT   CUSTOMER_ID,
             MIN( TIMESTAMP )                  AS MIN_TIMESTAMP,
             DATEADD( D, 1, MIN( TIMESTAMP ) ) AS MID_TIMESTAMP,
             DATEADD( D, 2, MIN( TIMESTAMP ) ) AS MAX_TIMESTAMP
    FROM     Faabi_Test2
    GROUP BY CUSTOMER_ID
    ), FirstDayQuery AS
    (
    SELECT   t.CUSTOMER_ID,
             COUNT( 1 ) AS ANZAHL
    FROM     Faabi_Test2 t
             INNER JOIN Query q ON q.CUSTOMER_ID = t.CUSTOMER_ID
    WHERE    t.TIMESTAMP BETWEEN q.MIN_TIMESTAMP AND q.MID_TIMESTAMP
    GROUP BY t.CUSTOMER_ID
    ), SecondDayQuery AS
    (
    SELECT   t.CUSTOMER_ID,
             COUNT( 1 ) AS ANZAHL
    FROM     Faabi_Test2 t
             INNER JOIN Query q ON q.CUSTOMER_ID = t.CUSTOMER_ID
    WHERE    t.TIMESTAMP BETWEEN q.MID_TIMESTAMP AND q.MAX_TIMESTAMP
    GROUP BY t.CUSTOMER_ID
    )
    SELECT   fdq.CUSTOMER_ID,
             fdq.ANZAHL AS ANZAHL_ERSTER_TAG,
             sdq.ANZAHL AS ANZAHL_ZWEITER_TAG
    FROM     FirstDayQuery fdq
             LEFT OUTER JOIN SecondDayQuery sdq ON fdq.CUSTOMER_ID = sdq.CUSTOMER_ID

    Ist jetzt nur auf die Schnelle so dahingeschrieben, könnte also sicherlich noch verbesserungswürdig sein.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Donnerstag, 23. Mai 2019 10:51
    Moderator
  • super Stefan,

    damit könnte ich was anfangen :-)

    VG

    Faabi

    Donnerstag, 23. Mai 2019 12:05
  • Hallo Faabi,

    könnte oder konnte? Falls letzteres, schließ den Thread bitte durch Markierung der hilfreichen Posts und der Antwort ab. Dankeschön :)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    • Als Antwort markiert Faabi Montag, 27. Mai 2019 08:42
    • Tag als Antwort aufgehoben Stefan FalzModerator Montag, 27. Mai 2019 10:35
    Samstag, 25. Mai 2019 06:18
    Moderator