Laden...

Selektion nach halber Stunde

Erstellt von romu2000 vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.218 Views
R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 16 Jahren
Selektion nach halber Stunde

verwendetes Datenbanksystem: SQL 2005

Hallo mal wieder,

mir macht seit Stunden etwas zu schaffen.

ich ziehe mir aus meiner DB per Select eine Liste mit Daten die nach Datum geordnet sind.
Wie ist es mir nun möglich, das ganze in Form einer Kreuztabelle ähnlich diesem Schema anzuzeigen?

08-08.30 15 Kontakte
08:30-09:00 27 Kontakte
09-09.30 18 Kontakte
.........

Ziel ist ein Bericht in dem ich mir mehrere Vertreter anzeigen lasse und ich so die Kontakte die getätigt werden anzeigen lassen kann.

Ich weiss allerdings nicht wie ich das darstellen könnte.

Select Datecreate,Bearbeiter
from Kontakte WHERE Datecreate = Date()

ist der grundlegende SELECT der mir die ganzen Daten in einem Dataset bereitstellt.

Ich weiss nur nicht wie ich im Berichtsdesigner oder auch in der SQL Abfrage solche Dinge wie
DATECREATE AS WZ1 WHERE DATECREATE between 08:00 and 08:30
AND
DATECREATE AS WZ2 WHERE DATECREATE between = 08:31 and 09:00

unterbringen soll.

das der Code hier schwachsinn ist, ist mir schon klar 🙂

Bietet der Berichtsdesigner eine Funktionalität mit der ich sowas schnell lösen kann oder weiss evtl. wie ich die Abfrage richtig gestallten muss damit mir meine gewünschten Ergebnisse ausgegeben werden?

Viele Grüße & Gute Nacht

Ronny

476 Beiträge seit 2004
vor 16 Jahren

hallo romu2000,

du könntest die Uhrzeiten normalisieren und PIVOT benutzen, das sollte dir die Daten wie gewünscht zurückliefern.

SQL-Server Onlinedokumentation: Verwenden von PIVOT und UNPIVOT.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 16 Jahren
hmmm

hallo mal wieder,

nachdem yellow mir den typ mit den PIVOT gegeben hat, und ich auch ewig rumporbiert habe, folgende Frage:


SELECT     COUNT(DATECREATE) AS WZEIT, CREATEDBY
FROM         kontakte
WHERE     (DATECREATE BETWEEN CONVERT(DATETIME, '2007-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2007-01-30 00:00:00', 102))
GROUP BY CREATEDBY
UNION
SELECT     COUNT(DATECREATE) AS WZEIT1, CREATEDBY
FROM         kontakte AS kontakte_1
WHERE     (DATECREATE BETWEEN CONVERT(DATETIME, '2007-02-01 00:00:00', 102) AND CONVERT(DATETIME, '2007-02-28 00:00:00', 102))
GROUP BY CREATEDBY

so liefert mir die3 Abfrage zwar ein paar Ergebnisse, erstellt aber weder die Spalte wzeit1 noch bin ich mit der Ausgabe zufrieden.

Das Problem welches ich mit PIVOT habe, ist : Wo und wie gebe ich die Abfragekriterien ein ?????

Wie kann ich z.b. sagen, dass ich alle Kontakte in einem bestimmtem Zeitraum haben möchte (halb Stündlich).

Das obige Beispiel war nur ein Test mit Monatsrückgabe. Ich weiss das ich das bequemer mit MONTH machen kann.

Weiss jemand Rat?

P.s:
In Access habe ich folgendes:

Einmal die Abfrage nach den Kontakten:

SELECT kontakte.CREATEDBY, kontakte.DATECREATE
FROM kontakte
WHERE (((kontakte.DATECREATE)>=Date() And (kontakte.DATECREATE)<=Now()));

Und einmal die PIVOT Sache:


TRANSFORM Count(*) AS Anzahl
SELECT (Format([DATECREATE],"hh")) AS Ausdr1
FROM Alle_Kontakte_Detail_nach_Uhrzeit
GROUP BY (Int([DATECREATE]*48)), (Format([DATECREATE],"hh"))
PIVOT Alle_Kontakte_Detail_nach_Uhrzeit.CREATEDBY;

Das ganze funktioniert nur leider in sQL nicht .-(

Vllt. weiss ja jemand Rat.

VIele Grüße

ROnny

R
romu2000 Themenstarter:in
291 Beiträge seit 2006
vor 16 Jahren
Problem

Hallo nochmal,

ich habe nun folgendes verständnisproblem:

Wie sage ich der PIVOT-Abfrage wie die Spaltennamen heissen?

Angenommen, ein mitarbeiter macht einen Kontakt um 05:32 alle anderenfangen normalerweise aber erst um 08:00 uhr an, so ist doch die SPaltenbenennung total daneben, oder?

Ich habe keinen Plan bei der Abfrage.

Ist es denn irgenwie möglich, gezielte Abfragen zu machen die dann auch einer entsprechenden Spalte zuordbar wären? z.b. Spalte1 AS [<08:00]
Spalte2 AS [08:30-09:00]

......

Ich steh total aufm Schlauch da mir das Verständnis für die Sache derzeit total fehlt.

Viele Grüße

Ronny