Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с SQL 2


Страницы:   1 2

Вика ©   (2004-08-17 18:13:00) 

Подскажите плиз SQL для осуществления следующего запроса:

select'ом выбирается (из таблицы cards) некоторое подмножество записей (использованных карточек). Теперь мне надо узнать сколько карт этого подмножества карт относится к каким дилерам (есть таблица дилеров и в cards - соответственно поле номера дилера). Как это сделать ?


Skyle   (2004-08-18 10:50:00) [21]

Нету возможности проверить, но может попробовать иначе?
Например
FROM Cards C, Dillers D
WHERE C.Status = 'USED' AND D.Id = C.NumDiller


Вика   (2004-08-18 10:44:00) [22]

> Skyle ©
Спасибо большое, что все-таки отозвались :))))
Вобщем у меня получился такой запрос:

with ReportSQL.SQL do begin
  Clear;
  Add('SELECT D.name, count(C.idcard) as CardsAmount ');
  Add('FROM cards C ');
  Add('INNER LOOP JOIN dillers D ON D.id=C.numdiller)');
  Add('WHERE C.status = ' + #39 + 'USED' + #39 );
  Add('AND C.statuschange IS NOT NULL ');
  Add('AND (C.statuschange BETWEEN :reportDateFirst AND :reportDateLast ) ');
  Add('GROUP BY C.dillernum ' );
  Parameters.ParseSQL(SQL.Text, True);
  Parameters.ParamByName('reportDateFirst').Value := ReportDateBegin.Date;
  Parameters.ParamByName('reportDateLast').Value := ReportDateEnd.Date;
  end;
  try
    Open;
  except
    on E:Exception do ShowMessage(E.Message);
  end;

Т.е. в итого надо получить число использованных карт по каждому дилеру за какой-то период времени (выбираемый вручную) и записать все это как-то в отчет. Так вот, данный запрос выдает ошибку синтаксиса в операторе JOIN:
"Project Cards.exe raised exception class EOleExcepton with messege "[Microsoft][Драйвет ODBC Microsoft Access]Ошибка синтаксиса в операции JOIN'. Prosess stopped ..."


Skyle   (2004-08-18 08:00:00) [23]


> 6] Desdechado ©   (17.08.04 21:10)

Чуть ниже есть та же тема, но без цифры. ;-)

2Вика: Отзовусь лучше здесь. По ночам я форум не читаю, так что не обессудьте... домохозяйка.. ;-)

По теме:
Пусть у нас есть таблица Dealers, поля Dealers.Id - номер, Dealer.Name - название дилера. В таблице Cards пусть будет поле DealerNum, которое есть ключ, связанный с Dealers.Id. Тогда запрос будет такой.

SELECT D.Name, Count(C.ID) AS CardsAmount
FROM Cards C
 INNER LOOP JOIN Dealers D ON D.Id = C.DealerNum
WHERE C.Status = 'USED'
GROUP BY C.DealerNum


Desdechado   (2004-08-17 21:10:00) [24]

?
какая нумерация?
какая тема?


app   (2004-08-17 20:48:00) [25]

Оформляй тему, нумерация хороша в базах, а не темах :-)


Desdechado   (2004-08-17 18:35:00) [26]

эт ясно :)
яж снова направление поиска писал, а не готовый код


Соловьев   (2004-08-17 18:33:00) [27]


> [2] Desdechado ©   (17.08.04 18:33)

связать надо как-то таблицы


Desdechado   (2004-08-17 18:33:00) [28]

select count(card), dealer from cards, dealers
group by dealer


Соловьев   (2004-08-17 18:32:00) [29]

select d.name_diler, c.name_card
from cards c join diler d on (c.fk_diler=d.pk_diler)
where c.name_card = 'bla-bla'


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо