Форум: "Базы";
Текущий архив: 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