Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.03;
Скачать: CL | DM;

Вниз

Как составить запрос   Найти похожие ветки 

 
man Yurik   (2008-01-04 12:24) [0]

Есть таблица(склад).В ней поля -
дата
получена/выписана
название детатали.


Немогу составить запрос который бы выдал следующий результат: (т.е. необходимо для конкретной детали получить сколько получено/выписано в день)

дата | кол-во получ детал | кол-во выписан детал | назв детали

Заранее благодарен за ответ.


 
Sergey13 ©   (2008-01-04 12:43) [1]

Из Firebird_v1.5.5.ReleaseNotes.pdf

SELECT
o.ID,
o.Description,
CASE
WHEN (o.Status IS NULL) THEN "new"
WHEN (o.Status = 1) THEN "confirmed"
WHEN (o.Status = 3) THEN "in production"
WHEN (o.Status = 4) THEN "ready"
WHEN (o.Status = 5) THEN "shipped"
ELSE "unknown status """ || o.Status || """"
END
FROM Orders o;

Наверное должно помочь.


 
Johnmen ©   (2008-01-04 14:44) [2]

Изучай документацию по SQL на предмет агрегатной функции COUNT и предиката GROUP BY. Ещё наверное CASE WHEN понадобится, но про это уже сказали.


 
man Yurik   (2008-01-04 15:50) [3]

Спасибо за ответ, но надо получить оборот детали (пришло|ушло) за день
т.е.

дата | кол-во получ детал | кол-во выписан детал | назв детали

Я вот и пытаюсь выполнить запрос типа

select a.date, count(a.in_out), count(a.in_out), a.componentname
from sklad a join sklad b on  a.date=b.date
where
a.componentname=b.componentname and
a.in_out="O" and b.in_out="I"
group by 1,2


Результаты не впечатляют -((( может кто укажет где ошибка


 
man Yurik   (2008-01-04 16:21) [4]

Извиняюсь запрос выглядит без опечаток так

select a.date, count(a.in_out), count(b.in_out), a.componentname
from sklad a join sklad b on  a.date=b.date
where
a.componentname=b.componentname and
a.in_out="O" and b.in_out="I"
group by 1,4


 
Iskander ©   (2008-01-04 17:06) [5]


> Результаты не впечатляют

Вообще-то не результаты, а твой запрос не впечатляет

select a.componentname, a.date,
 (select count(*) from sklad b1 where
       b1.componentname = a.componentname
   and b1.date = a.date
   and b1.in_out="O") as out_count,
 (select count(*) from sklad b1 where
       b1.componentname = a.componentname
   and b1.date = a.date
   and b1.in_out="I") as in_count
from sklad a
group by a.componentname, a.date


Поправьте меня, мне протестить негде ...


 
man Yurik   (2008-01-04 17:17) [6]

Согласен с Вами - мой запрос не впечатляет...-(( Ваш коректно работает. Спасибо всем за внимание


 
Johnmen ©   (2008-01-04 17:18) [7]


> Результаты не впечатляют

Что это значит?

Уже ж было сказано про CASE. Думалку включаем, да...:)


 
Johnmen ©   (2008-01-04 17:20) [8]

Iskander ©   (04.01.08 17:06) [5]
Вот так писАть в данном случае не рекомендую. Это тормоза.


 
Iskander ©   (2008-01-04 17:33) [9]

select a.componentname, a.date,
count(CASE in_out WHEN "O" THEN "O" ELSE NULL END) as out_count,
count(CASE in_out WHEN "I" THEN "I" ELSE NULL END) as in_count
from sklad a
group by a.componentname, a.date


 
Johnmen ©   (2008-01-04 17:41) [10]

Вообще-то предполагалось, что автор ветки думать начнет...


 
man Yurik   (2008-01-04 19:46) [11]

Попробую переделать в процедуру...


 
man Yurik   (2008-01-04 19:58) [12]

Мда, пожалуй мне действително лучше ReleaseNotes.pdf для FB

Всем спасибо за пинок... Большое - Iskander


 
Johnmen ©   (2008-01-04 20:28) [13]

Вот так всегда, пинаешь аффтара, пинаешь, а спасибо за пинок всегда добрым дядям с медвежьей услугой, или по-другому, штрейкбрехерам.
Куда катится мир? Откуда в нем столько пустоголовых ленивцев и истинных несомненных гениев?


 
sniknik ©   (2008-01-04 20:51) [14]

> и истинных несомненных гениев?
типа нас тобой? ;о)


 
Johnmen ©   (2008-01-04 21:49) [15]


> sniknik ©   (04.01.08 20:51) [14]
> типа нас тобой? ;о)

Нет. Типа Iskander ©
:)))



Страницы: 1 вся ветка

Текущий архив: 2008.02.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
2-1200065240
AntonUSAnoV
2008-01-11 18:27
2008.02.03
перевод типа word в string


15-1198725040
Slider007
2007-12-27 06:10
2008.02.03
С днем рождения ! 27 декабря 2007 четверг


2-1199426201
Alexandr Malygin
2008-01-04 08:56
2008.02.03
не отображается label на появляющейся на некоторое время форме


11-1183576848
=BuckLr=
2007-07-04 23:20
2008.02.03
OnRE_URLClick правой мышью


15-1198261166
БарЛог
2007-12-21 21:19
2008.02.03
Новый год по-админски =)