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

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

Помогите с SQL


Страницы:   1 2 3 4

Вика ©   (2004-08-13 14:45:00) 

Помогите с написанием SQL для решения следующей задачи:

есть постоянная таблица карточек, еженедельно из другой проги с некоторую таблицу выгружатся карточки со полем статуса "USED". Эту самую табличку надо стравнить с постоянной таблицей карточек и поменять у соответствующих карточек статус "AVAILABLE" на "USED" и проставить в поле statuschange дату изменения статуса.


ANB   (2004-08-18 19:04:00) [1]


> Вика  

Все очень клево, но уточни пожалуйста задачу :
1. Что должно происходить с картами, если она использовалась раньше и перестала (то есть во временной табличке ее нет) ?
2. Если у диллера нет карточки - он должен отображаться с нулем ?
Ответишь - напишу запросы.


Ольга   (2004-08-18 18:52:00) [2]

SELECT b.DealerName, Count(a.ID)
FROM Tmp_Cards a, Dillers b
WHERE a.id_diller=b.id_diller AND a.Status = 'USED'
GROUP BY b.DealerName


Вика   (2004-08-17 16:55:00) [3]

Skyle отзовитесь плиз, помогите домохозяйке ... :))))


Вика   (2004-08-17 15:44:00) [4]

> Skyle ©
Но имя-то дилера в таблице dillers...


Skyle   (2004-08-17 15:40:00) [5]


> номера дилера

Ну, соответственно поменять DialerName на этот номер...


Skyle   (2004-08-17 15:37:00) [6]

SELECT DealerName, Count(ID)
FROM Tmp_Cards
WHERE Status = 'USED'
GROUP BY DealerName

Оно?
Выдаст наименование дилера (поле DealerName) и количество записей (карт) для такого дилера в таблице tmp_cards, у которых статус 'USED'
Я правильно вопрос понял?


Вика   (2004-08-17 15:32:00) [7]

> Skyle ©
Да нет, параметр у меня там только один - текущая дата и она:

sql.Parameters.ParamByName('currDate').Value := FormatDateTime('dd.mm.yy',Date);

Ну да ладно, фиг с ним, у меня тут вопрос поважнее :))) Заранее извиняюсь если тупой (вопрос в смысле :)))

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


Skyle   (2004-08-17 15:02:00) [8]


> [55] Ega23 ©   (17.08.04 14:56)

Ага.

Может быть также другая ситуация (но в душе та же)
Params[1].VAlue := bla-bla
Params[2].Value := tra-tra
и т.д
То есть не с нуля, а с 1.


Ega23   (2004-08-17 14:56:00) [9]

List Index Out of Bounds (0)

Поди где-то стоит for i:=0 to Что-то.Count
А надо Что-то.Count-1


Skyle   (2004-08-17 14:50:00) [10]


> который выполняется нормально, т.е. изменяет данные, но
> каждый раз выдается ошибка "List Index Out of Bounds (0)"
> - в чет тут может быть дело ?

Код можно глянуть с указанием, где ошибка возникает.


46_55_41_44   (2004-08-17 14:41:00) [11]


> AndB ©   (13.08.04 17:10) [51]

Слушай не придирайся к словам я имел ввиду может она какую-то переменную объявилаод таким названием!!!!! шутник


Вика   (2004-08-17 13:48:00) [12]

Спасибо за помощь с SQL,получился вот такой запрос:

UPDATE cards SET cards.status =  ' + #39 + 'USED' + #39', cards.statuschange = :currDate
WHERE cards.id IN
(SELECT tmp_cards.id FROM tmp_cards WHERE tmp_cards.status = ' + #39 + 'USED' + #39' )
AND cards.status = ' + #39 + 'AVAILABLE' + #39
AND cards.statuschange IS NULL

который выполняется нормально, т.е. изменяет данные, но каждый раз выдается ошибка "List Index Out of Bounds (0)" - в чет тут может быть дело ?

Thanx...


AndB   (2004-08-13 17:10:00) [13]

46_55_41_44! извини, у меня с юмором напряги. Здесь
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1092042786&n=1[11] > может ADOConnection - это какое-то зарезервированное слово!
и в этой ветке:
[41] > Это все я знаю... не первый день в этом деле...- это юмор?


Квэнди   (2004-08-13 17:01:00) [14]

46_55_41_44 а зачем одним?.. а как же процедуры и иже с ними?.. речь то идет не об решении задачей "одной строкой", а о решении задачи всеми средствами БД, а использование Делфи лишь помогает реализовать визуализацию и передачу данных...


46_55_41_44   (2004-08-13 17:00:00) [15]


> Квэнди ©   (13.08.04 16:51) [47]

OLE - Object Linking and Embedding


46_55_41_44   (2004-08-13 16:57:00) [16]

А вот это уже совсем другое!!!
очень много всего оставляется на шею сервера...
Это понятно!!!
Но не все же согласись...
но... опять таки - это еще не говорит о том, что все остальное оставляется на шею юзера... Тогда Дельфяк зачем? Весь наш спор изначально начался из-за того, что мы видимо не так друг-друга поняли... хотя говорим в целом об одном и том же!!!
Честное слово охоты нет писать здесь, чем я щас занимаюсь... но уверяю тебя только одним каким-нибудь очень сложным запросом это не выполнить...


Квэнди   (2004-08-13 16:51:00) [17]

46_55_41_44  еще один вопрос, а как же тогда OLE, COM ?.. ето не клиент сервер? :)


Ega23   (2004-08-13 16:49:00) [18]

В Access нет T-SQL

Я понимаю, что его там нет. Меня интересуют АНАЛОГИ (если таковые есть). Именно об этом я и хочу почитать.


Ega23   (2004-08-13 16:48:00) [19]

просто видимо ты никогда не писал бух. приложения...

Почему не писал? Писал и ещё как. Только я тебе так скажу: мне гораздо проще промежуточные вычисления запихнуть в ХП, а не тащить кучу данных на клиент и "колбасить" их там.

Представь, что вместо того, чтобы соединить тебя с аботентом, с сервера МТС пришёл пакет инструкций для самостоятельного подключения.  :о)


46_55_41_44   (2004-08-13 16:47:00) [20]


> Ega23 ©   (13.08.04 16:45) [42]

можно


Страницы:   1 2 3 4

Наверх

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