Главная страница
    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.035 c
14-1131330279
Petr V . Abramov
2005-11-07 05:24
2005.11.27
проблемы Франциии


2-1131361359
Ольга
2005-11-07 14:02
2005.11.27
Формирование строки


14-1131027047
Viktop
2005-11-03 17:10
2005.11.27
Установка DevExpress


1-1130774220
n0mid
2005-10-31 18:57
2005.11.27
Как можно из двух EXE файлов получить один


2-1131347777
mennn
2005-11-07 10:16
2005.11.27
Ошибка при компиляции





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