Перейти к содержимому

Реферальная программа Мегаплана


Как посчитать сумму одного столбца таблицы по определенному критерию?

#11 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 15 Сентябрь 2009 - 11:00

дата в формате YYYY-MM-DDmaster.jpg visit.jpg
  • 0

#12 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Сентябрь 2009 - 10:43

sc2r2bey,
1) Тогда по дате надо отбирать не так. Там уже не так всё просто, нужно и месяц и год проверять и день, я в календаре показывал как это сделать.
2) Кто вас учил внешние ключи(связь с внешними таблицами) делать типа VARCHAR. Это такой же тип INT как и сам id в главной таблице с той же длиной.
Это я говорю например про поля: id_client, id_specservise, id_master, id_service, id_material, id_product
  • 0

#13 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 17 Сентябрь 2009 - 16:19

нукто я сам учился, просвяти плиз :)
  • 0

#14 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Сентябрь 2009 - 21:13

sc2r2bey,
Тогда несколько правил:
1) Типы созданы для строгости в организации структур + самодокументации(глянув на имя и на тип часто можно вынести для себя, что представляет из себя поле и хранящиеся в нём данные)
2) В каждой таблице должно быть поле которое явно и однозначно идентифицирует запись в таблице( это поле с ключем PRIMARY KEY и auto_increment)
3) Внешние ключи(служащие для однозначной связи данных между таблицами) должны быть того же типа, что и первичные ключи(идентифицирующие записи).
4) Хочешь хранить много регистронезависимого текста используй тип TEXT. Если нужено поле регистрозависимое, например для хранения байтов данных, используй - BLOB
5) Дату надо хранить в соответствующих для этого типах DATE, DATETIME, TIMESTAMP иначе затем все функции работы с датой и сортировка по дате прокатывать не будут.

Много принципов можно вынести методом проб и ошибок и из интересных и умных книжек.

Если ты хочешь вытащить данные относящиеся к определенному дню, тебе так же надо сверить год и месяц, иначе также включатся ненужные данные с прошлых месяцев и прошлых лет.
Для получения из даты дня, месяца, года используем в MySQL функции
SELECT `*` FROM `table` WHERE DAY(`date`)=1 AND MONTH(`date`)=1 AND YEAR(`date`)=2009

Этот запрос вытащит нам все строки из таблицы table с датой 1 января 2009 года.
DAY() - возвращает день указанной в параметре даты от 1 до 31
MONTH() - возвращает месяц указанной в параметре даты от 1 до 12
YEAR() - возвращает год указанной в параметре даты от 1000 до 9999
  • 0

#15 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 17 Сентябрь 2009 - 21:43

sc2r2bey,

2) Кто вас учил внешние ключи(связь с внешними таблицами) делать типа VARCHAR. Это такой же тип INT как и сам id в главной таблице с той же длиной.
Это я говорю например про поля: id_client, id_specservise, id_master, id_service, id_material, id_product

ппц это я закасячил неправильные типы указал, спасибо за подсказку, лоханулся, сейчас внимательно проверил и действительно )))
  • 0


Оформление форума – IPBSkins.ru