|
marianna
|
||||||
Sql запрос (выборка)22.07.2010, 12:29. Показов 1863. Ответов 16
Метки нет (Все метки)
В картотеке есть условно “колхозники” и ”совхозники” – tblkart (id, fam, im, kateg), поле kateg – Категория, integer (1), значение kateg 1 – колхозник, 2 – совхозник.
Подчиненная таблица удостоверений – tbllic (id, idlic, vid, ser, nom), в которой хранятся разные удостоверения по видам (vid – string 3) Мне нужно выбрать всех «колхозников», и если есть, серии и номера удостоверений, где vid= “У03”. если соотв удостоверения нет, вывести фамлию и имя, а колонка с удост. должна остаться пустой. Запрос ниже игнорирует всех тех, у кого в tbllic нет записей. Что делать?
|
||||||
| 22.07.2010, 12:29 | |
|
Ответы с готовыми решениями:
16
Вложенный SQL-запрос, выборка SQL запрос выборка, помогите составить SQL Запрос, выборка повторяющихся значений |
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
|
| 22.07.2010, 13:05 | |
|
похоже что нужно применять union
0
|
|
|
marianna
|
||||||
| 22.07.2010, 14:47 | ||||||
|
union, на сколко я знаю, объединяет таблицы с одинаковыми полями, отбрасывая дубли. Вот из MSDN пример
|
||||||
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
||||||
| 22.07.2010, 16:10 | ||||||
|
не совсем точно,
можно и так делать
В твоем случае это как раз и нужно. В первом запросе выбираешь своих всех «колхозников», и если есть, серии и номера удостоверений, где vid= “У03”. Во втором, если соотв удостоверения нет, вывести фамлию и имя, а колонка с удост. пустая.
0
|
||||||
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
|
| 22.07.2010, 17:03 | |
|
Или так:
select tblkart.fam,tblkart.im, tbllic.ser,tbllic.nom from tblkart left outer join tbllic on tblkart.id=tbllic.id and kateg = 1
0
|
|
|
marianna
|
||||||
| 25.07.2010, 10:50 | ||||||
|
Составила схему и вот что у меня получилось.
Теперь я хочу усложнить запрос и выбрать только те удостоверения, которые имеют последнюю дату выдачи, чтобы Сидоров был один, как во 2 запросе и Чернов без удостоверения остался, как в 1. У кого есть лишняя минута, помогите, пожалуйста. Я что-то уже плаваю вокруг и около, но в цель не попадаю.
|
||||||
|
marianna
|
|
| 25.07.2010, 10:52 | |
|
Строки немного поехали
|
|
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
|
| 25.07.2010, 14:00 | |
|
Select * from table1 left join table2 on table1.id = table2.id and table1.kateg = 1 and table2.ser = 'УО3' and table2.dat_v=(Select max(Dat_v) from table2 t2 where t2.id = table1.id)
0
|
|
|
marianna
|
|||||||||||
| 25.07.2010, 14:31 | |||||||||||
|
VbGuest
Уже ближе к истине,
Результат
|
|||||||||||
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
|
| 25.07.2010, 15:06 | |
|
А так:
table2.dat_v=(Select max(Dat_v) from table2 t2 where t2.id = table1.id and t2.ser = 'УО3')
0
|
|
|
marianna
|
|
| 25.07.2010, 15:11 | |
|
И так не выдает, и никак. Все не так просто. М.б. union все-таки надо применять. или одним запросом не обойтись, нужно как-то обрабатывать базы, использовать доп. таблицы или массивы.
|
|
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
|
| 25.07.2010, 15:14 | |
|
Даже если ser с vid поменять, а то я невнимательно посмотрел
0
|
|
|
marianna
|
||||||
| 25.07.2010, 15:32 | ||||||
|
На это я обратила внимание, у меня была др. ошибка, но сейчас все OK
Спасибо большое!
|
||||||
|
marianna
|
||||||
| 25.07.2010, 17:04 | ||||||
|
В реальной жизни все не так, как в схемах. Я рано радовалась.
Бывает так, что номер и серия заполнена, а даты нет - Null (в table2 id = 4), тогда результат тот же -
|
||||||
|
marianna
|
|
| 25.07.2010, 17:12 | |
|
Получилось. Поставила 'or table2.dat_v is null '
|
|
|
98 / 1 / 1
Регистрация: 28.01.2007
Сообщений: 53
|
|
| 25.07.2010, 17:45 | |
|
При большом кол-ве записей в table2 понадобится индек по полю dat_v
0
|
|
|
marianna
|
||||||
| 26.07.2010, 17:05 | ||||||
|
Я уже работаю с большими базами без индекса. Индекс надо заводить в базе SQL Servera? Вообще не использую индексы. Индексы для меня загадка, использую только order by, ни в одной моей книге ничего путного про них нет, кроме как создать.
Выдается не совсем правильный набор, т.е. есть такое
|
||||||
| 26.07.2010, 17:05 | |
|
Помогаю со студенческими работами здесь
17
Выборка данных через SQL запрос Выборка данных в случайном порядке SQL запрос Delphi. SQL запрос ADOQuery. Выборка из Dbgrid в разных формах SQL запрос: выборка групп, которые учатся в определенном учебном году
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|