Автор: admin | 18.12.2007 в 11:23 | Рубрики: Базы данных

Вывод нужных полей

SELECT LastName, FirstName, Salary FROM employee

[Хотим вывести только имя, фамилию и оклад служащих]

Вывод всех полей из таблицы

SELECT * FROM employee

[ * обозначает все поля]

Задание псевдонима таблице

SELECT * FROM employee emp

where emp.salary>35000

[Таблице employee в качестве псевдонима задано emp

Выводим всех служащих с окладом свыше 35000]
Читать полностью…

Автор: admin | в 11:23 | Рубрики: Базы данных

Local SQL не поддерживает вложенные запросы, но после того как я заработал клок седых волос, я нашел в высшей степени простое решение: использование временной таблицы.

Пример:

with GeneralQuery do
begin
SQL.Clear;
SQL.Add(…. внутренний SQL);
SQL.Open;
DbiMakePermanent(handle, ‘temp.db’,true);
SQL.Clear;
SQL.Add(SELECT … FROM ‘temp.db’….);
SQL.Open;
end;

Единственное: необходимо убедиться в том, что имя таблицы не вступает в конфликт с именами нескольких работающих копий таблицы. И, разумеется, данная технология не даст “живой” набор!

Автор: admin | в 11:23 | Рубрики: Базы данных

Как с помощью SQL найти записи таблицы, которых нет в другой таблице?

Вот пример:

with PeopleHiddenForm.PersonQuery.SQL do begin
Add(’Select P.Last, P.First, P.Middle, P.”Suffix”, P.KeyNo, COUNT(PersMemL.PersonKeyNo)’);
Add(’From Person P Left Outer Join ‘);
Add(’ PersMemL PersMemL’);
Add(’On ((P.KeyNo = PersMemL.PersonKeyNo))’);
Add(’Group By P.Last, P.First, P.Middle, P.Suffix, P.KeyNo’);
Add(’Having ((Count(PersmemL.PersonKeyNo) = 0))’);

Данный код позволяет связаться с таблицей (PersMemL), содержащей количество ключей персональной записи и запись членства. Запрос возвращает имена персон, которые не имеют записей членства.

На практике этот способ оказывается очень эффективным, по крайней мере, с локальным SQL в таблицах Paradox.

Автор: admin | в 11:23 | Рубрики: Базы данных

Я заполнил таблицу 10 записями и сделал SQL с “OR” (в свойстве “select * from”, где acreage=5.5 или acreage=6). Это работает. Затем я возвратился и поместил вторичный индекс в поле acreage - и это НЕ СРАБОТАЛО.

Наличие вторичного индекса не позволяет нормально отработать запросу SQL.

В дополнение к высказываниям “настоящие” программисты считают, что в 1 км - 1024 м, в сутках 3 байта…

SELECT CAST((поле_с_датой -”NOW”) AS INTEGER) FROM MyBase
Получишь результат в днях.