Главная страница
    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.009 c
3-96617
vv_fran
2003-01-13 11:51
2003.01.30
Падение сервера FireBirrd 1.0.2.908 (FibPlus 4.77)


1-96877
jiura
2003-01-21 12:50
2003.01.30
MDI!!!


1-96649
Муть
2003-01-20 13:56
2003.01.30
Listbox с элементами переменной высоты


14-96975
Maximator Vetera
2003-01-10 19:49
2003.01.30
Неловко как-то просить, вроде и образование высшие ...


1-96674
lightix
2003-01-21 15:09
2003.01.30
Помогите с TMenuItem !!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский