SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.02.2011 05:37:10

happyserge
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Сложный заппрс...

Имеется таблица "Банк". Поля: "N_B, NAME".
Имеется таблица "Клиент". Поля: "N_P, FIO".
Имеется таблица "Кредит". Поля: "N_P, N_B".

Необходимо вывести паспорта (N_P) клиентов, вязвших кредиты во всех имеющихся банках (N_B).
Голову поломал - как ЭТО сделать? Подскажите, плзззззззз!

Неактивен

 

#2 16.02.2011 05:45:20

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Сложный заппрс...

SELECT client.N_P, count(DISTINCT bank.N_B) b FROM client, credit, bank WHERE client.N_P=credit.N_P AND credit.N_B=bank.N_B HAVING b=(SELECT count(DISTINCT bank.N_B) FROM bank);

Неактивен

 

#3 16.02.2011 10:55:54

happyserge
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: Сложный заппрс...

SELECT CLIENT.N_P, COUNT(DISTINCT BANK.N_B) B
FROM CLIENT, BANK, CREDIT
WHERE CLIENT.N_P = CREDIT.N_P
AND CREDIT.N_B = BANK.N_B HAVING B =(SELECT COUNT(DISTINCT BANK.N_B) FROM BANK)


Error at line 1
Dynamic SQL Error
SQL error code = -104
invalid column reference
SQL - SELECT CLIENT.N_P, COUNT(DISTINCT BANK.N_B) B
FROM CLIENT, BANK, CREDIT
WHERE CLIENT.N_P = CREDIT.N_P
AND CREDIT.N_B = BANK.N_B HAVING B =(SELECT COUNT(DISTINCT BANK.N_B) FROM BANK)

Отредактированно happyserge (16.02.2011 10:58:15)

Неактивен

 

#4 16.02.2011 11:04:01

happyserge
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: Сложный заппрс...

Изменил для теста на:

SELECT COUNT(DISTINCT BANK.N_B) B
FROM CLIENT, BANK, CREDIT

и в итоге:

Error at line 1
Dynamic SQL Error
SQL error code = -206
Column unknown
B

Отредактированно happyserge (16.02.2011 11:04:56)

Неактивен

 

#5 16.02.2011 15:14:35

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Сложный заппрс...

Прошу прощения, забыл GROUP BY

SELECT CLIENT.N_P, COUNT(DISTINCT BANK.N_B) B
FROM CLIENT, BANK, CREDIT
WHERE CLIENT.N_P = CREDIT.N_P
AND CREDIT.N_B = BANK.N_B GROUP BY CLIENT.N_P
HAVING B =(SELECT COUNT(DISTINCT BANK.N_B) FROM BANK)

Неактивен

 

#6 17.02.2011 15:16:06

happyserge
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: Сложный заппрс...

Всё равно пишет

Error at line 1
Dynamic SQL Error
SQL error code = -206
Column unknown
B

Неактивен

 

#7 17.02.2011 15:39:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Сложный заппрс...

Точно в запросе присутствует кусок "COUNT(DISTINCT BANK.N_B) B" ?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson