2012-03-06 4 views
0

У меня есть данные (результат/выход) в виде таблицы, как это:Как создать SQL запрос

Project code project name associates     time efforts in days 
1    Analytics  amol,manisha,sayali,pooja (21+17+20+17)=57 

Мне нужно рассчитать усилия времени в днях. Я сделал это в феврале, и я добавил, сколько дней он работал в этом месяце. Я имею в виду, что у меня есть все дни минус заочное время любого дня всех окружающих.

Итак, мне нужно сделать это по SQL-запросам.

У меня есть одна таблица, которая содержит все ассоциированные элементы с датами.

Как это:

UID username date 

Так может ли один дать мне предложение, как я могу это сделать?

+2

Я думаю, вам нужно будет лучше понять вашу модель данных, а также то, что вы пробовали до сих пор, чтобы получить хороший ответ на этот вопрос. Например, «окружающие» и «временные усилия в день» хранятся в другой таблице или представляют собой списки имен/чисел, как показывает ваш вопрос? –

+9

Ввод ** разделенных запятыми ** Список элементов в один столбец, как в вашем столбце 'asscociates', является ** действительно действительно BAD ** для реляционной базы данных. Присоединение к таблице «Associates» теперь является действительно раздражающим и болезненным упражнением ..... Вы должны узнать об основах хорошего реляционного дизайна - особенно о том, как ** нормализовать ** таблицы - первая нормальная форма говорит: только положите ** одно атомное значение ** в каждый столбец! –

+0

, что первая таблица не является таблицей ... ее результат мне нужно генерировать из запроса на 2-й таблице, которая была дана – Manisha

ответ

0

Это будет лучший дизайн, чтобы иметь отдельную таблицу для хранения projectid, идентификатора члена команды и его/ее усилий в течение нескольких дней. так что вы можете написать простой запрос соединения для достижения того, чего хотите.

0

Вот что я хотел бы сделать. Изменение вам таблицы, так что вы есть:

проекты

project_code project_name 
1    Analytics 

пользователей

UID username date 
1 amol 
2 manisha 
3 sayali 

projects_users

project_code uid effort 
1    1  21 
1    2  17 
1    3  20 

Теперь вы можете запросить результат, который вы просили, как это:

SELECT 
    p.project_code, 
    p.project_name, 
    GROUP_CONCAT(DISTINCT u.username SEPARATOR ', ') AS associates, 
    SUM(pu.effort) effort 
JOIN users AS u 
JOIN projects_users AS pu 
FROM projects p 
GROUP BY project_code 
Смежные вопросы