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

Вниз

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

 
Ega23 ©   (2004-08-13 16:44) [40]

В MsAccess есть очень мощный sql builder! Заходим в Access открываем базу, переходим на закладку Query, делаем New Query. Далее добавляем таблицу в поля мышкой перетаскиваем звездочку. Все наш sql готов. Его можно как StoredProc запускать из под Delphi. Access весма неплох для начинающих.

Эта вещь View называется.

Я бы не сказал, что я начинающий. Билдер, конечно, штука хорошая, однако мне нужно описание именно ДИАЛЕКТА SQL. Со списком предоставляемых функций, переменных и т.п.

Например, в MS SQL есть такие вещи, как NoCount, @@IDENTITY, Cast/Convert. Мне нужно такое же, но для Access.


 
46_55_41_44 ©   (2004-08-13 16:44) [41]

Слушай Ega23 ©  
Это все я знаю... не первый день в этом деле...
Если хочешь выложу сюда хрень размером 3000 строк...
Там работает всего несколько запросов!!!
Но чтобы увидеть все в нормальном нужном, документированном виде, в котором требует клиент... уверяю тебя пришлось немного попотеть... и это даже не 10% проги... так что нечего иронизировать на счет моего знания или не знания технологии клиент-сервер. И не всё, что требуется это цепочка сложных запросов... просто видимо ты никогда не писал бух. приложения...


 
Ega23 ©   (2004-08-13 16:45) [42]

update ConstTab set ConstTab.status = "used" where ConstTab.p_key in
(select TempTab.p_key from TempTab where TempTab.status = "used")


На Access такое можно?


 
46_55_41_44 ©   (2004-08-13 16:46) [43]


> Ega23 ©   (13.08.04 16:44) [40]

В Access нет T-SQL


 
46_55_41_44 ©   (2004-08-13 16:47) [44]


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

можно


 
Ega23 ©   (2004-08-13 16:48) [45]

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

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

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


 
Ega23 ©   (2004-08-13 16:49) [46]

В Access нет T-SQL

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


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

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


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

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


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


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

OLE - Object Linking and Embedding


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

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


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

46_55_41_44! извини, у меня с юмором напряги. Здесь
http://delphimaster.net/view/3-1092042786/ [11] > может ADOConnection - это какое-то зарезервированное слово!
и в этой ветке:
[41] > Это все я знаю... не первый день в этом деле... - это юмор?


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

Спасибо за помощь с 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...


 
46_55_41_44 ©   (2004-08-17 14:41) [53]


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

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


 
Skyle ©   (2004-08-17 14:50) [54]


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

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


 
Ega23 ©   (2004-08-17 14:56) [55]

List Index Out of Bounds (0)

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


 
Skyle ©   (2004-08-17 15:02) [56]


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

Ага.

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


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

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

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

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

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


 
Skyle ©   (2004-08-17 15:37) [58]

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

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


 
Skyle ©   (2004-08-17 15:40) [59]


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

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


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

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


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

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


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

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


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


> Вика  

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



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

Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.038 c
1-1093511861
mao04
2004-08-26 13:17
2004.09.12
Как пронумеровать страницы в MSWord?


3-1092819526
surkis
2004-08-18 12:58
2004.09.12
Access


1-1093620483
Anderson
2004-08-27 19:28
2004.09.12
Формы


8-1086939942
gear
2004-06-11 11:45
2004.09.12
WaveInOpen и ACM проблема!


3-1092832076
Kurtevich
2004-08-18 16:27
2004.09.12
Ищу БД без БДЕ





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