Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для pingUIN

Пользователь


Сообщения: 137
Благодарности: 7

Профиль | Отправить PM | Цитировать


Я тут на соседних форумах поспрашал, со мной поделились кодом по теме задачи

Код: Выделить весь код
;with cprov_mbox as (
    select * from( values
    (1),(2),(3)
    )values_cprov_mbox(mbox_id))
,out_trx as (
    select * from( values
    (1,1,cast('20150717 05:30' as datetime)),
    (2,2,'20150717 05:30')
    )values_out_trx(trx_id, cprov_mbox_id, stored_at))
,AnotherTable as (
    select * from( values
    (1,2),(2,1),(3,2)
    )values_AnotherTable(mbox_id, qty))
select cp.mbox_id, COUNT(ot.trx_id) qty
from AnotherTable p
join cprov_mbox cp on cp.mbox_id=p.mbox_id
LEFT JOIN out_trx AS ot  ON (ot.cprov_mbox_id = cp.mbox_id) 
  and ot.stored_at BETWEEN '20150717 03:23:39' and '20150717 06:23:39' 
GROUP BY cp.mbox_id, p.qty
having COUNT(ot.trx_id) < p.qty
Может ли мне кто из знающих, если таковые имеются, пояснить момент с WITH(что делает функция понимаю), а вот селекты в ней, не совсем понятны.

К примеру рассмотреть если
Код: Выделить весь код
select * from( values
    (1,1,cast('20150717 05:30' as datetime)),
    (2,2,'20150717 05:30')
    )values_out_trx(trx_id, cprov_mbox_id, stored_at))
что за код после VALUES, как его можно интерпретировать на человеческий язык если рассматривать логику ?

-------
здесь был администратор 8)


Отправлено: 11:09, 28-07-2015 | #3