Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

помогите с запросом   Найти похожие ветки 

 
Цукор5   (2007-05-24 16:47) [0]

Имеем таблицу текущего кол-ва. Запрос выглядит , например так :
select CODE,NAME,QTY from TEMPART.DBF

Также имеется таблица продаж. Данные достаю так :
 
select CODE,SUM(SALEQTY)  from TEMSALE.DBF
where  ZREP="0" GROUP BY CODE

Необходимо получить следующее :
CODE,NAME,QTY,SUM(SALEQTY) для всех записей таблицы TEMPART. При этом в таблице TEMSALE данных может вообще не быть...тогда необходиво вывести 0 в SUM(SALEQTY)

В какую сторону смотреть ???

Спасибо !!!


 
Desdechado ©   (2007-05-24 16:54) [1]

Если комбинация CODE,NAME в TEMPART.DBF уникальна, то можно одним запросом из 2 таблиц с группировкой по CODE,NAME,QTY


 
Anatoly Podgoretsky ©   (2007-05-24 17:01) [2]

> Цукор5  (24.05.2007 16:47:00)  [0]

В сторону соединений (JOIN)


 
Цукор5   (2007-05-24 19:30) [3]

2 Desdechado ©   (24.05.07 16:54) [1]
>Если комбинация CODE,NAME в TEMPART.DBF уникальна

Да, уникальна. Повторений по полю CODE нет.


 
Цукор5   (2007-05-24 19:31) [4]

2 Цукор5   (24.05.07 19:30) [3]

По полю NAME тоже уникальна.


 
Desdechado ©   (2007-05-24 19:37) [5]

Ну, и? Получилось?


 
Цукор5   (2007-05-24 20:13) [6]

нет


 
Loginov Dmitry ©   (2007-05-24 20:58) [7]

А если так:

SELECT tp.CODE, tp.NAME, tp.QTY, sum(ts.SALEQTY)
FROM TEMPART tp
LEFT JOIN TEMSALE ts ON tp.CODE = ts.CODE
WHERE ts.ZREP = "0"
GROUP BY tp.CODE, tp.NAME, tp.QTY


 
Цукор5   (2007-05-24 22:47) [8]

2 Loginov Dmitry ©   (24.05.07 20:58) [7]
>А если так

Так отображаются товары, у которых были продажи. А мне нужно все отобразить...даже если продаж небыло(т.е. в TEMSALE пусто , например).

З.Ы. Спасибо и за это !!!


 
Loginov Dmitry ©   (2007-05-24 23:03) [9]

> Так отображаются товары, у которых были продажи. А мне нужно
> все отобразить...даже если продаж небыло(т.е. в TEMSALE
> пусто , например).


Это происходит из-за условия. Удали его.
Либо измени его его так:
WHERE (ts.ZREP = "0") OR (ts.ZREP IS NULL)


 
Цукор5   (2007-05-24 23:30) [10]

А я сделал так :

SELECT tp.CODE, tp.NAME, tp.QTY, sum(ts.SALEQTY)
FROM TEMPART tp
LEFT JOIN TEMSALE ts ON tp.CODE = ts.CODE
WHERE ts.ZREP = "0"
GROUP BY tp.CODE,tp.NAME, tp.QTY
UNION
SELECT tp.CODE, tp.NAME, tp.QTY, 0
FROM TEMPART tp
WHERE tp.CODE NOT IN ( SELECT CODE FROM TEMSALE GROUP BY CODE)
ORDER BY 1

Сейчас посмотрю [9].

Еще раз спасибо !


 
Цукор5   (2007-05-24 23:39) [11]

2 Loginov Dmitry ©   (24.05.07 23:03) [9]
> Это происходит из-за условия. Удали его.

Да, так получается. Но в DBGrid"е пусто...оно и понятно, ведь null.
Я так понимаю, можно отобразить в гриде нужные мне нули. А как ?


 
Anatoly Podgoretsky ©   (2007-05-24 23:40) [12]

> Цукор5  (24.05.2007 23:39:11)  [11]

OnGetText как минимум



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

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
2-1179820641
RusTim
2007-05-22 11:57
2007.06.17
Как руссифицировать ActionManager


1-1177058182
Маруська
2007-04-20 12:36
2007.06.17
Расположение диаграммы на листе в Excel


2-1180426342
_vl_
2007-05-29 12:12
2007.06.17
Форматирование числа


2-1179905554
Алексин
2007-05-23 11:32
2007.06.17
проблемы с реализацией


3-1174646438
ANB
2007-03-23 13:40
2007.06.17
Можно ли в оракле в контексте одной сессии переключать DBLink ?