Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @date1 datetime;
- DECLARE @date2 datetime;
- DECLARE @alltime INT;
- SET @alltime = %d;
- SET @date1 = %s;
- SET @date2 = %s;
- SELECT dm.marka,dm.TYPE,COUNT(d.kod) as COUNT,COUNT(pu.dvigatel) as wcount, COUNT(pub.kod) as bcount,
- COUNT(publast.kod) as broken,COUNT(DISTINCT dpu.sved_spis) as spis,COUNT(pususp.kod) as suspended,
- COUNT(puworkonend.kod) as onend, SUM(CASE WHEN (pu.broken = 'd' OR pu.broken = 'u') THEN 1 ELSE 0 END) as brok_count,
- AVG(CASE WHEN (d.sved_buh >= d.sved_spis OR @date2 < @date1) THEN 0 WHEN (@alltime <=0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2)
- AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,@date2)+1-CONVERT(INT,@date1)) WHEN (@alltime > 0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2)
- AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh))
- WHEN ((d.sved_spis IS NULL OR d.sved_spis > @date2) AND d.sved_buh > @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh))
- WHEN (@alltime <=0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, @date1))
- WHEN (@alltime > 0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, d.sved_buh))
- WHEN (d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh > @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT,d.sved_buh)) ELSE 0 END)*24 as nar_avg,
- MIN(CASE WHEN (d.sved_buh >= d.sved_spis OR @date2 < @date1) THEN 0 WHEN (@alltime <=0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2) AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,@date2)+1-CONVERT(INT,@date1)) WHEN (@alltime > 0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2) AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh)) WHEN ((d.sved_spis IS NULL OR d.sved_spis > @date2) AND d.sved_buh > @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh)) WHEN (@alltime <=0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, @date1)) WHEN (@alltime > 0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, d.sved_buh)) WHEN (d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh > @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT,d.sved_buh))
- ELSE 0 END)*24 as nar_min, MAX(CASE WHEN (d.sved_buh >= d.sved_spis OR @date2 < @date1) THEN 0 WHEN (@alltime <=0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2)
- AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,@date2)+1-CONVERT(INT,@date1)) WHEN (@alltime > 0 AND (d.sved_spis IS NULL OR d.sved_spis > @date2)
- AND d.sved_buh <= @date1 AND d.sved_buh < @date2) THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh)) WHEN ((d.sved_spis IS NULL OR d.sved_spis > @date2) AND d.sved_buh > @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,@date2)+1-CONVERT(INT,d.sved_buh)) WHEN (@alltime <=0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, @date1)) WHEN (@alltime > 0 AND d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh <= @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT, d.sved_buh)) WHEN (d.sved_spis <= @date2 AND d.sved_spis > @date1 AND d.sved_buh > @date1 AND d.sved_buh < @date2)
- THEN (CONVERT(INT,d.sved_spis)+1-CONVERT(INT,d.sved_buh)) ELSE 0 END)*24 as nar_max FROM dvigateli d LEFT JOIN pumpunits pu ON pu.dvigatel = d.kod AND ((pu.datestart > @date1
- AND pu.dateend <= @date2) OR (pu.datestart <= @date1 AND (pu.dateend > @date2 OR pu.dateend IS NULL)) OR (pu.datestart > @date1 AND (pu.dateend >= @date2 AND pu.dateend > @date1 OR pu.dateend IS NULL)
- AND pu.datestart < @date2) OR (pu.datestart <= @date1 AND (pu.dateend <= @date2 AND pu.dateend > @date1 OR pu.dateend IS NULL) AND pu.datestart < @date2))
- LEFT JOIN pumpunits puworkonend ON puworkonend.dvigatel = d.kod AND puworkonend.dateend IS NULL OR puworkonend.dateend >= @date2 AND puworkonend.datestart < @date2
- LEFT JOIN dvigateli dpu ON dpu.kod = pu.dvigatel LEFT JOIN pumpunits pub ON pub.kod = pu.kod AND (pub.datestart < @date2 AND pub.dateend <= @date2 AND pub.dateend > @date1
- AND (pub.broken = 'd' OR pub.broken = 'u')) LEFT JOIN pumpunits publast ON publast.kod = pu.kod AND (publast.datestart < @date2 AND publast.dateend <= @date2 AND publast.dateend > @date1
- AND (publast.broken = 'd' OR publast.broken = 'u') AND publast.dateend = d.sved_spis AND d.sved_spis IS NOT NULL) LEFT JOIN pumpunits pususp ON pususp.kod = pu.kod AND (pususp.broken <> 'd'
- OR pususp.dateend <> d.sved_spis) LEFT JOIN dvigateli_marky dm ON dm.marka = d.marka GROUP BY dm.marka,dm.TYPE , alltime, XDTX0(m_connection->m_pdb, dateend.c_str()), XDTX1(m_connection->m_pdb, datestart.c_str()));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement