Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

Помогите написать запрос.   Найти похожие ветки 

 
TTCustomDelphiMaster   (2003-01-11 21:16) [0]

Имеется таблица со следующими полями
ID, ParentID, Flag1, Flag2, Field1

Нужно получить НД со следующими полями
ID - ID у которых Flag1 = True,
CountChild - Количество записей у которых Flag2 = True и ParentID = ID (полученному в первом поле),
SumChild - Сумму по полю Field1 записей у которых Flag2 = True и ParentID = ID (полученному в первом поле)

Заранее спасибо


 
TTCustomDelphiMaster   (2003-01-11 23:56) [2]

Кошмар


 
Ужас.   (2003-01-12 00:41) [3]

Не, а правда такой запрос нужен? Если я правильно понял, может так:

SELECT

Table1.ID,
CountChild,
SumChild

FROM

Table1,
(SELECT
Count(ID) AS CountChild,
Sum(Field1) as SumChild
FROM Table1
HAVING
FLAG2=TRUE AND ParentID=ID AND FLAG1 = TRUE)

WHERE Table1.FLAG1=TRUE;

Вроде помочь охота, ты всем помогаешь.


 
Johnmen   (2003-01-12 00:58) [4]

SELECT
A.ID,
COUNT(B.ID) AS CountChild,
SUM(B.Field1) AS SumChild,
FROM Table A, Table B
WHERE (A.ID=B.ParentID) AND
(<A.Flag1=True>) AND
(<B.Flag2=True>)
GROUP BY A.ID


 
Бред.   (2003-01-12 00:59) [5]

2 Ужас. (12.01.03 00:41)


 
TTCustomDelphiMaster   (2003-01-12 01:15) [6]

Не понял что тут ужасного.

В контейнере ID = 1 имеется 3 ящика
Первый ID = 2 ParentID = 1
Второй ID = 3 ParentID = 1
Третий ID = 4 ParentID = 1

Flag1 показывает что это контейнер
Flag2 показывает что яшик в контейнере

Field1 масса ящика

Нужно получить все контейнеры, количество и массу ящиков в них.

Johnmen спасибо завтра попробую.


 
TTCustomDelphiMaster   (2003-01-12 01:28) [7]


> WHERE (A.ID=B.ParentID) AND


И еще нужно вывести все контейнеры в которых нет ящиков.


 
Johnmen   (2003-01-12 02:21) [8]

SELECT
A.ID,
COUNT(B.ID) AS CountChild,
SUM(B.Field1) AS SumChild
LEFT JOIN Table B ON A.ID=B.ParentID
FROM Table A
WHERE (<A.Flag1=True>) AND (<B.Flag2=True>)
GROUP BY A.ID


 
TTCustomDelphiMaster   (2003-01-12 10:08) [9]

Спасибо получилось.
А если мне надо в этом же запросе подсчитать количество ящиков в контейнере у которых поле flag3=True (ящик выдан грузополучателю), то получается нужно какой то вложеный запрос делать?
SELECT
A.ID,
COUNT(B.ID) AS CountChild,
SUM(B.Field1) AS SumChild,
(COUNT(B.ID) where B.Flag3 = True) ???


 
TTCustomDelphiMaster   (2003-01-12 13:04) [10]


> SELECT
> A.ID,
> COUNT(B.ID) AS CountChild,
> SUM(B.Field1) AS SumChild,
> (COUNT(B.ID) where B.Flag3 = True) ???


А вообще что-то подобное можно сделать?


 
Johnmen   (2003-01-12 22:16) [11]

SELECT
A.ID, A.Flag3,
COUNT(B.ID) AS CountChild,
SUM(B.Field1) AS SumChild
LEFT JOIN Table B ON A.ID=B.ParentID
FROM Table A
WHERE (<A.Flag1=True>) AND (<B.Flag2=True>)
GROUP BY A.ID, A.Flag3


 
TTCustomDelphiMaster   (2003-01-12 22:37) [12]

Спасибо. Надеюсь что у меня получится запустить этот код.
Сейчас по причине крайне плохого знания SQL пришлось выкручиваться двумя запросами.



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

Форум: "Базы";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
1-96752
neodiX
2003-01-21 19:06
2003.01.30
Перерисовка формы, когда она выходит за границы экрана


1-96678
Chubais
2003-01-16 13:37
2003.01.30
при даблклике на заголовке окна идет OnTitleClick грида


1-96818
Sergey_El'f
2003-01-20 16:33
2003.01.30
Возврат в приложение после CreateProcess


1-96879
New Guy
2003-01-21 13:11
2003.01.30
ReadLn


6-96936
NewGuest
2002-12-06 19:33
2003.01.30
Мастера, раз в D7 не установлены компаненты типа TclientSocket,то





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский