[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с запросом
westside_90
Вкратце, есть таблица с полями: `id`, `number`, `summa`, `date`, из неё нужно выбрать только строки с уникальной датой за определённый период, пробовал что-то такое, но всёравно в результате все строки:

SELECT `id`,`number`,`summa`,`date` 
FROM `bank`
WHERE DATE(`date`) = (SELECT DISTINCT DATE(`date`) FROM `bank`)
AND DATE(`date`) BETWEEN '$min_date' AND '$max_date';




Спустя 4 минуты, 56 секунд (2.04.2012 - 12:56) killer8080 написал(а):
SELECT `id`,`number`,`summa`,`date` 
FROM `bank`
WHERE DATE(`date`) BETWEEN '$min_date' AND '$max_date'
GROUP BY `date`;

Спустя 3 минуты, 37 секунд (2.04.2012 - 13:00) westside_90 написал(а):
спасибо, на 100% то что надо)

Спустя 5 минут, 50 секунд (2.04.2012 - 13:06) westside_90 написал(а):
а можно ещё как-нить приткнуть к этому запросу, чтобы давало сумму по всем строкам уникальной даты вместо сумы одной уникальной строки?

Спустя 15 минут, 30 секунд (2.04.2012 - 13:21) killer8080 написал(а):
$query = mysql_query("
SELECT SQL_CALC_FOUND_ROWS `id`,`number`,`summa`,`date`
FROM `bank`
WHERE DATE(`date`) BETWEEN '
$min_date' AND '$max_date'
GROUP BY `date`
"
);
$count = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);

Причем даже если в запросе был лимит, все равно получишь общее число рядов.

Спустя 3 минуты, 7 секунд (2.04.2012 - 13:25) westside_90 написал(а):
но, мне только по одному столбцу нужны суммы, а остальных нужны значение любой строки из групы с уникальной датой

Спустя 2 минуты, 10 секунд (2.04.2012 - 13:27) killer8080 написал(а):
Ну добавь в запрос COUNT(*) blink.gif

Спустя 2 минуты, 49 секунд (2.04.2012 - 13:30) westside_90 написал(а):
COUNT(`summa`) - тогда получу количество строк, а не сумму? щас попробую

Спустя 2 минуты, 38 секунд (2.04.2012 - 13:32) killer8080 написал(а):
SELECT `id`,`number`,`summa`,`date`, COUNT(`id`) AS `cnt` 
FROM `bank`
WHERE DATE(`date`) BETWEEN '$min_date' AND '$max_date'
GROUP BY `date`;

Спустя 7 минут, 15 секунд (2.04.2012 - 13:39) westside_90 написал(а):
Цитата (killer8080 @ 2.04.2012 - 10:32)
SELECT `id`,`number`,`summa`,`date`, COUNT(`id`) AS `cnt` 
FROM `bank`
WHERE DATE(`date`) BETWEEN '$min_date' AND '$max_date'
GROUP BY `date`;

считает просто количество строк, а не сумму полей, так что не вариант, буду ковырять уже полученый результат в php

Спустя 3 минуты (2.04.2012 - 13:42) killer8080 написал(а):
SELECT `id`,`number`,`summa`,`date`, SUM(`summa`) AS `sum` 
FROM `bank`
WHERE DATE(`date`) BETWEEN '$min_date' AND '$max_date'
GROUP BY `date`

так ?

Спустя 1 минута, 52 секунды (2.04.2012 - 13:44) westside_90 написал(а):
вот-вот, так я уже и зделал, просто изначально я этот вариант отбросил, что-то у меня раньше не выходило, уже не помню почему а сейчас всё ок)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.