Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL: Tsql Group

uppari [02.06.2014 14:40:48]

#

En saa MS-SQL ryhmittelyä toimimaan haluamallani tavalla. Alla lyhyt kuvaus sekä koodi.
Repladone taulussa on aikaleimoja "r.pvm" mihin aikaa tietue on tarkalleen kuitattu.
Miten saisin alla olevaan lisättyä tällaisen ehto lausekkeen ryhmittelyyn?

Jos paussi on pidempi kuin 15min tietueiden kuittaamisen välissä,
tee niistä uusi group.

DECLARE @temp TABLE (PM varchar(100),SARJA varchar(100),DUBBARI varchar(100), ALKU varchar(100),
LOPPU varchar(100),AIKA varchar(100), TUNTIDEC decimal(18,2),REPLAT int)
INSERT @temp
SELECT convert(varchar,r.pvm,104), --AS PM
Sarjanimi,d.nimi,
convert(varchar, (MIN(r.pvm)), 108), --AS ALKU
convert(varchar, (MAX(r.pvm)), 108), --AS LOPPU
convert(varchar, DATEDIFF(MINUTE, MIN(r.pvm), MAX(r.pvm))), --AS AIKA
(DATEDIFF(MINUTE, MIN(r.pvm), MAX(r.pvm)))/cast(60 as decimal (2)), --AS TUNTIDEC
COUNT(r.repla_ID) --AS REPLAT

FROM repladone R
JOIN dubbari D ON r.dub_ID=d.dub_ID
JOIN sarjatieto S ON r.sarja_ID=s.sarja_ID
WHERE r.pvm > GETDATE()-1
GROUP BY convert(varchar,r.pvm,104),d.nimi,s.Sarjanimi
HAVING ((DATEDIFF(MINUTE, MIN(r.pvm), MAX(r.pvm)))/cast(60 as decimal (2)) > 0)

SELECT *,cast((t.REPLAT/t.TUNTIDEC) as int) AS '/T' FROM @temp T

ORDER BY PM DESC, LOPPU DESC

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta