|
MySQL.RU - Webboard
Вернуться
Представления? (Lev) 29/07/2003 - 05:54:22
Re: Представления? (Валентин) 29/07/2003 - 09:47:06
Re: Спасибо за ответ... :( (Lev) 30/07/2003 - 10:02:55
Re: Спасибо за ответ... :( (Валентин) 30/07/2003 - 12:18:49
Re: Канешна! (Lev) 30/07/2003 - 20:55:01
Re: Канешна! (Валентин) 31/07/2003 - 10:37:15
> Original message text:
> From: Lev - 29/07/2003 - 05:54:22
> Subject:Представления?
> -----------------
> Подскажите пожалуйста:
> Существует ли в MySQL нечто, подобное понятию "прдставление" в MSSQL?
> Очень неудобственно без него... А выбирать сервер не приходится.
>
From: Валентин - 31/07/2003 - 10:37:15
Subject:Канешна!
-----------------
Мускул в запросай достаточно мощный, я сам удивился, когда сподобился высчитать остатки надату таким вот запросом:
select PR.ID_Wares,PR.ID_ObjAccount,
/*W.MainName as WaresMainName,O.MainName as ObjAccountMainName,*/
/*остатки на партиях*/
IF(sum(PR.Volume)/IF(count(DISTINCT(PL.ID)),count(DISTINCT(PL.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),
sum(PR.Volume)/IF(count(DISTINCT(PL.ID)),count(DISTINCT(PL.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),0) as CurrCount,
/*расход за период на дату*/
IF(Sum(PL.Volume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),
Sum(PL.Volume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),0) as OutCount,
/*приход за период на дату*/
IF(sum(PR1.BeginVolume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(distinct(PL.ID)),count(distinct(PL.ID)),1),
sum(PR1.BeginVolume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(distinct(PL.ID)),count(distinct(PL.ID)),1),0) as InCount,
/*считаем остаток как остатки + расход и - приход*/
(IF(sum(PR.Volume)/IF(count(DISTINCT(PL.ID)),count(DISTINCT(PL.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),
sum(PR.Volume)/IF(count(DISTINCT(PL.ID)),count(DISTINCT(PL.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),0) +
IF(Sum(PL.Volume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),
Sum(PL.Volume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(DISTINCT(PR1.ID)),count(DISTINCT(PR1.ID)),1),0) -
IF(sum(PR1.BeginVolume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(distinct(PL.ID)),count(distinct(PL.ID)),1),
sum(PR1.BeginVolume)/IF(count(DISTINCT(PR.ID)),count(DISTINCT(PR.ID)),1)/IF(count(distinct(PL.ID)),count(distinct(PL.ID)),1),0)) as RestOnDate
from `partsrest` PR , `wares` W,`objaccount` O
left join `partslines` PL on (PL.DocmDateDest>='2003.07.28' AND
PL.ID_Wares=PR.ID_Wares AND
PL.ID_ObjAccount=PR.ID_ObjAccount )
left join `partsrest` PR1 on (PR1.DocmDate >= '2003.07.28' and
PR1.ID_Wares=PR.ID_Wares and
PR1.ID_ObjAccount=PR.ID_ObjAccount)
where PR.Volume>0 and W.ID=11 and W.ID=PR.ID_Wares and O.ID=PR.ID_ObjAccount
group by PR.ID_Wares,PR.ID_ObjAccount;
Так что не пренебрегайте возможностями :). удачи.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
9855
|
|