|
|
|
| есть таблица
np fio np1 ns1 np2 ns2
1 Иванов 4 10 3 20
2 Колян 3 10 4 10
3 сидоров
4 петров
где np1, np2-номер человека, которому продает свой товар,
ns1,ns2- кол-во которое продает.
нужно следующее: при вводе фамилии сидоров получить
иванов 20
колян 10
или при вводе фамилии петров-
иванов 10
колян 10 | |
|
| |
|
|
|
| А что тут сложного? Обычный запрос на выборку... точнее два, обединённых с помощью UNION. ;-) | |
|
| |
|
|
|
|
| это может быть первый запрос?
SELECT Таблица1.np, Таблица1.fio, Таблица1.np1, Таблица1.ns1, Таблица1_1.fio, Таблица1.np2, Таблица1.ns2, Таблица1_2.fio
FROM (Таблица1 INNER JOIN Таблица1 AS Таблица1_1 ON Таблица1.np1 = Таблица1_1.np) INNER JOIN Таблица1 AS Таблица1_2 ON Таблица1.np2 = Таблица1_2.np
WHERE (((Таблица1_1.fio)=[фио])) OR (((Таблица1_2.fio)=[фио])); | |
|
| |
|
|
|
| Что так много столбцов в предложении SELECT? Вы же хотели только два: Фамилия и количество. Ладно, на код ещё можно согласиться, но всё остальное зачем?
Для первого запроса Вам нужно выбрать два столбца fio и ns1 из Вашей таблицы, где np1 соответствует фамилии "Сидоров", у которой np = 3 из той же таблицы. Если дословно перевести на SQL, то объединение и не требуется.
Для второго запроса вместо ns1 ставится ns2, а вместо np1 - np2. | |
|
| |
|
|
|
| пока не поздно поменяйте структуру БД | |
|
| |
|
|
|
|
|
| Я уже пытался объяснить, не получилось ;-) | |
|
| |
|
15 Кб. |
|
| посмотрите отчет. мне нужно сделать в таком виде
ввожу петров
в отчете
иванов 10
колян 10 | |
|
| |