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

Вниз

Подскажите по SQL   Найти похожие ветки 

 
DimonS ©   (2005-12-27 07:59) [0]

Добрый день всем и с наступающим НГ!

А вопрос вот какой, ламерский, наверное.

Есть БД (Access). В ней имеются 3 таблицы:

Справочник заказчиков:
Kod - уникальный код заказчика;
Name - наименование его же.

Справочник техники:
Cod - код данной техники;
Cena - цена 1 моточаса, у всех разная.

Таблица Товарно-Транспортных накладных:
Cod - код техники;
Kod - код заказчика;
Chas - отработанные часы.

Можно ли соединить эти таблицы одним запросом так, чтобы получить сводные данные за месяц - Наименование заказчика, Отработанные часы по ВСЕЙ технике и общую сумму за месяц для каждого заказчика, типа такой:

Наменование   |  Отработано, ч  | Сумма

Если можно так сделать, то подскажите, плз, как, желательно с примером, т.е. сам запрос.


 
menart ©   (2005-12-27 08:14) [1]

select  Name, Sum(Chas), Sum(Cena) from [Справочник заказчиков], [Справочник техники], [Таблица Товарно-Транспортных накладных]
where [Справочник заказчиков].Kod=[Таблица Товарно-Транспортных накладных].Kod and [Справочник техники].Cod=[Таблица Товарно-Транспортных накладных].Cod


 
DimonS ©   (2005-12-27 08:32) [2]

Такая не катит. Во-первых, цены складывать нельзя. Нужно именно перемножить цену на количество часов каждого механизма и затем сложить их. Так понятнее? Можно, конечно, реализовать через циклы, а просто запросом реально?


 
evvcom ©   (2005-12-27 08:39) [3]


> Sum(Cena)

Sum(Cena * Chas)

> Kod
> Cod

Сам-то запомнил какой код чей? Именовать поля/переменные надо более говорящими именами. Имхо.


 
menart ©   (2005-12-27 09:09) [4]

Да и добавь Group By Name
Извеняюсь забыл


 
DimonS ©   (2005-12-27 09:10) [5]

То evvcom

Это я привел просто левые коды.

Вот, пишу такой код:

select Z.Name, Sum(T.Cena03*B.Chas) from Zak Z,Tehnica T,TTN B where Z.Nom="B.Zakaz" and B.Сod=T.Cod Group By Z.Name

В результате выдается пустая таблица. В чем ошибка?

Zak - заказчики, Tehnica - техника, TTN - товарки.


 
Johnmen ©   (2005-12-27 09:12) [6]

...where Z.Nom="B.Zakaz" and...

"Поспешишь - людей насмешишь" (c)


 
DimonS ©   (2005-12-27 10:00) [7]

Все, спасибо всем. Просто в таблице заказчиков поле Nom было текстового типа, заменил - все стало ОК!



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

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

Наверх





Память: 0.46 MB
Время: 0.014 c
2-1135497900
kop
2005-12-25 11:05
2006.01.15
Запрос > мемо


3-1131980881
sanich
2005-11-14 18:08
2006.01.15
Резервное копиравание в FireBird под XP


14-1135100911
Cerberus
2005-12-20 20:48
2006.01.15
Как написать ОС?


1-1134239007
LordOfRock
2005-12-10 21:23
2006.01.15
Дерево и связанные с ним данные.


2-1135584280
check
2005-12-26 11:04
2006.01.15
GUID





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