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

Вниз

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

 
Elast   (2005-04-28 10:57) [0]

Помогите разобраться... Есть три ТБ Partner, Item, PartnerItem.
Т.е. много-ко-многим. Необходимо найти 1.Товары общие для поставщиков и 2.Все общие товары. Т.е. объединение пересечений и пересечение пересечений товаров. Сделал  в ХР

 For select PN.NamePartner, IT.NameItem, PI.Id_Partner,  PI.Id_Item
       from  Partner PN, Item IT, PartnerItem PI
      where (PN.Id_Partner = PI.Id_Partner) and
            (IT.Id_Item    = PI.Id_Item   )
   order by NameItem
       Into :NamPar, :NamIte, :Id_Par, :Id_Ite
 do begin
   Select Count(Id_PartnerItem)
     from PartnerItem
    where Id_Partner <> :Id_Par and
          Id_Item = :Id_Ite
     Into :Cou;
   If (:Cou > 1) then
     suspend;
 end

Вопрос: на SQL это реализуется, вроде бы рекурсия намечается...


 
Sergey13 ©   (2005-04-28 11:05) [1]

Мне не особо понятно, что надо найти
1.Товары общие для поставщиков - для всех поставщиков?
2.Все общие товары. - для всех поставщиков? и чем это отличается от 1?


 
Elast   (2005-04-28 11:07) [2]

М.б. один товар для всех (пересечение пересечений множества товаров) или товары общие для некоторых поставщиков (объединение пересечений).


 
Sergey13 ©   (2005-04-28 11:14) [3]

2 [2] Elast   (28.04.05 11:07)
Запрос писать лень, но...
В первом случае count(товар) в PartnerItem должен быть равен count(*) в Partner. Во втором должен быть >1.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1116582026
mnx
2005-05-20 13:40
2005.06.06
Косвенная команда


4-1113559553
Dot
2005-04-15 14:05
2005.06.06
CreateWindow и TForm1


14-1116516221
Petya
2005-05-19 19:23
2005.06.06
Сколько денег?


1-1116589355
Tuborg
2005-05-20 15:42
2005.06.06
TStringGrid+TSparseArray


3-1114794389
MiHOY
2005-04-29 21:06
2005.06.06
как извлеч данные из BLOB