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

Вниз

Опять туплю: left join ???   Найти похожие ветки 

 
alex_1234 ©   (2005-11-08 17:56) [0]

Никак не могу сообразить: дано 2 таблицы: таблица продаж data - дата продажи

create table table1(
id char(30),
data date,
kolvo integer)

и справочник товаров, где begin_kolvo - первоначальное колво товара

create table table2
id char(30),
name char(30),
begin_kolvo integer)

данные следующие:

insert into table2(id,name,begin_kolvo) values ("1","ABC1",10);
insert into table2(id,name,begin_kolvo) values ("2","XYZ2",100);
insert into table2(id,name,begin_kolvo) values ("3","KLMN3",15);

и

insert into table2(id,data,kolvo) values(1,"10.10.2005",1);
insert into table2(id,data,kolvo) values(2,"10.10.2005",1);
insert into table2(id,data,kolvo) values(3,"10.10.2005",1);
insert into table2(id,data,kolvo) values(1,"10.10.2005",3);
insert into table2(id,data,kolvo) values(2,"10.10.2005",1);
insert into table2(id,data,kolvo) values(1,"11.10.2005",1);
insert into table2(id,data,kolvo) values(2,"11.10.2005",2);
insert into table2(id,data,kolvo) values(1,"11.10.2005",1);

Хочется получить примерно следующее:
id     |  name  |   begin_kolvo  | sum(kolvo)  
1      | XYZ2   |       100        |    2

если выборка была за 10.10.2005 по названию "XYZ2"
Копать надо где-то в направлении LEFT JOIN,  вот мои мучения, которые не дали нужного результат:

select table2.id, table2.name,table2.begin_kolvo,table1.kolvo,table1.kolvo from table2
left join table1 on table1.data="11.10.2005"
where table2.name like "%XY%"

при попытке сделать SUM(table1.kolvo) требуется сделать group by,  но вот с ним-то (group)  не как и не разберусь...


 
ANB ©   (2005-11-08 18:01) [1]

select table2.id, table2.name,table2.begin_kolvo,sum(table1.kolvo) from table2
left join table1 on table1.data="11.10.2005"
where table2.name like "%XY%"
group by table2.id, table2.name,table2.begin_kolvo


 
alex_1234 ©   (2005-11-08 18:05) [2]

Ругается следующим макаром:

When GROUP BY exists, every simple field in projectors must be in GROUP BY.


 
Desdechado ©   (2005-11-08 22:03) [3]

вообще-то не вижу объединения таблиц...
где в LEFT JOIN объединение table1 с table2?


 
alex_1234 ©   (2005-11-09 11:10) [4]

УРА!!! Заработало.
добавил связку таблиц в часть "ON"

select table2.id, table2.name,table2.begin_kolvo,sum(table1.kolvo) from table2
left join table1 on table1.data="11.10.2005" and table1.id=table2.id
where table2.name like "%XY%"
group by table2.id, table2.name,table2.begin_kolvo



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

Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.014 c
2-1131439107
DinoRay
2005-11-08 11:38
2005.11.27
непонятки с таймером


2-1131346245
freshman
2005-11-07 09:50
2005.11.27
каким образом подключить набор компонент


14-1131119336
ArtemESC
2005-11-04 18:48
2005.11.27
Как отключить загрузку обновлений WindowsXP


14-1131343920
Sergey_Masloff
2005-11-07 09:12
2005.11.27
Думкин, happy birthday


2-1131091231
uZveruga
2005-11-04 11:00
2005.11.27
Глюк в rtl60.bpl





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