|
| Дата |
|
USD/RUB | 88.6852 | BTC/USD | 68349.4811 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
12.10.2012, 16:23
|
Start Post: SQL запрос, help
|
Senior Member
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
|
MS Access, есть запрос.
Код:
SELECT ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME
FROM ACCOUNT INNER JOIN ORDERS ON ACCOUNT.ACCOUNT_ID = ORDERS.FK_ACCOUNT_ID
WHERE (((ACCOUNT.EMAIL) Like "*@*") AND ((ACCOUNT.SEX)=2) AND ((ORDERS.ORDER_ID) Is Not Null));
Как сделать, чтобы выводил только строки с уникальным ACCOUNT.EMAIL ?
|
|
|
12.10.2012, 18:16
|
#12
|
Senior Member
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
ТС -->
|
ТС
Цитата:
Сообщение от Boddhisatva
SELECT DISTINCT ACCOUNT.EMAIL
FROM ACCOUNT
WHERE ACCOUNT.EMAIL LIKE "*@*"
ORDER BY ACCOUNT.EMAIL;
Не?
UPD.
А, остальные поля тоже нужно выводить?
Сорри, поспешил.
|
Да, тоже надо. Так выводит, но без доп. полей
|
|
|
12.10.2012, 18:19
|
#13
|
Senior Member
Регистрация: 27.10.2007
Сообщений: 134
Бабло: $37333
|
SELECT ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME, ACCOUNT.SEX, count(*)
FROM ACCOUNT
WHERE ACCOUNT.EMAIL Like "*@*"
GROUP BY ACCOUNT.EMAIL
|
|
|
12.10.2012, 18:26
|
#14
|
Senior Member
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
ТС -->
|
ТС
Цитата:
Сообщение от alexpotemkin
SELECT ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME, ACCOUNT.SEX, count(*)
FROM ACCOUNT
WHERE ACCOUNT.EMAIL Like "*@*"
GROUP BY ACCOUNT.EMAIL
|
|
|
|
12.10.2012, 19:14
|
#15
|
Senior Member
Регистрация: 24.11.2010
Сообщений: 229
Бабло: $52860
|
Проверь, может оно?
PHP код:
SELECT ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME FROM ACCOUNT WHERE ACCOUNT.EMAIL IN (SELECT DISTINCT ACCOUNT.EMAIL FROM ACCOUNT)
Последний раз редактировалось Venya Tolinov; 12.10.2012 в 19:19.
|
|
|
12.10.2012, 22:07
|
#16
|
Юниор
Регистрация: 20.05.2011
Сообщений: 9
Бабло: $2280
|
Попробуй так, на работоспособность не тестил, но вроде то, что ты просил
SELECT DISTINCTROW ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME
FROM ACCOUNT INNER JOIN
(select ORDERS.FK_ACCOUNT_ID from ORDERS
where ORDERS.ORDER_ID Is Not Null
group by ORDERS.FK_ACCOUNT_ID) as TMP_ORDERS
ON ACCOUNT.ACCOUNT_ID = TMP_ORDERS.FK_ACCOUNT_ID
and ((ACCOUNT.EMAIL) Like "*@*")
AND ((ACCOUNT.SEX)=2);
Цитата:
Сообщение от Diplomat
|
чтобы не было этой ошибки, нужно в груп бай включить остальные поля, которые у тебя есть в селекте, или использовать для них функции sum, avg и т.д.
__________________
<welcome>
Последний раз редактировалось iShurin; 12.10.2012 в 22:12.
Причина: добавил еще текста
|
|
|
12.10.2012, 23:28
|
#17
|
Senior Member
Регистрация: 05.01.2008
Сообщений: 1,676
Бабло: $213930
|
вы чет хуйню какую-то пишете
пусть топик стартер ответит что должен вернуть запрос
когда email один и тот же а first_name и last_name разные.
вот я ебу что ему надо. Толи первое, толи последнее, толи список.
Все можно, знать бы что надо то.
|
|
|
12.10.2012, 23:45
|
#18
|
Senior Member
Регистрация: 05.01.2008
Сообщений: 1,676
Бабло: $213930
|
короче типа такого
SELECT ACCOUNT.EMAIL,max(ACCOUNT.FIRST_NAME||' '||ACCOUNT.LAST_NAME)
FROM ACCOUNT INNER JOIN ORDERS ON ACCOUNT.ACCOUNT_ID = ORDERS.FK_ACCOUNT_ID
WHERE (((ACCOUNT.EMAIL) Like "*@*") AND ((ACCOUNT.SEX)=2) AND ((ORDERS.ORDER_ID) Is Not Null))
group by 1
|
|
|
13.10.2012, 14:31
|
#19
|
Senior Member
Регистрация: 07.04.2008
Сообщений: 134
Бабло: $26447
|
Цитата:
Сообщение от creator123
вы чет хуйню какую-то пишете
пусть топик стартер ответит что должен вернуть запрос
когда email один и тот же а first_name и last_name разные.
вот я ебу что ему надо. Толи первое, толи последнее, толи список.
Все можно, знать бы что надо то.
|
+1
ТЗ невнятное.
типа "сделайтекнопочкутакуюженопозакругленнейишобонатыц калась"
нормальное ТЗ = быстрый и качественный ответ
по нынешнему ТЗ могу ответить так:
при наличии MS Access и вашего запроса - ну вообще никак.
|
|
|
13.10.2012, 15:21
|
#20
|
Senior Member
Регистрация: 26.10.2009
Сообщений: 597
Бабло: $127864
ТС -->
|
ТС
Внятное ТЗ. MS ACCESS
Код:
SELECT ACCOUNT.EMAIL, ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME, ACCOUNT.SEX
FROM ACCOUNT
WHERE (((ACCOUNT.EMAIL) Like "*@*"))
ORDER BY ACCOUNT.EMAIL;
Этот запрос выводит мейлы и столбцы ИМЯ и ФАМИЛИЯ
Задача, чтобы все это выводил. Но мейлы были уникальными(т.е дубли не выводились)
|
|
|
13.10.2012, 15:46
|
#21
|
главный злодей гофака
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953848
|
Цитата:
Сообщение от Diplomat
Задача, чтобы все это выводил. Но мейлы были уникальными(т.е дубли не выводились)
|
попробуй так
Цитата:
SELECT count(DISTINCT ACCOUNT.EMAIL), ACCOUNT.FIRST_NAME, ACCOUNT.LAST_NAME, ACCOUNT.SEX
FROM ACCOUNT
WHERE (((ACCOUNT.EMAIL) Like "*@*"))
GROUP BY ACCOUNT.EMAIL
ORDER BY ACCOUNT.EMAIL;
|
__________________
|
|
|
|