![]() |
Страницы (4): « Первая ... « 2 3 [4] Показаны 58 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Вопросы по MS SQL Server (http://netadmin.ws/forum/showthread.php?threadid=10996)
quote:
"вид"="представление"?
quote:
А не лучше ли сделать функцию для выборки таких результатов
и
А он возьмёт значения для WHERE "извне"?..
)quote:
он выбирает не все записи из таблицы structura_kks, а только те, к которым есть привязка из contr_zadania
WHERE contr_zadania.kz_to_year = '2006'
OR contr_zadania.kz_to_year IS NULL
__________________
Тест - проверка верности!
Viktor не... нифига не работает!..
Может плохо объяснил:
Таблица structura_kks это список подразделений
Таблица contr_zadania содержит задания для стр. подразделений привязанные по id. НО не для всех подразделений установлены задания, а так же для одного стр. подразделения могут быть установлены задания на несколько лет! Надо выбрать все стр. подразделения и задания на один год...
__________________
Админ - вождь Апачей...
У меня работало...
Как вариант, кинь нужные таблицы потестить.
__________________
Тест - проверка верности!
В приложении 2 табл.
Про требуемую выборку я написал чуть выше...
Заранее благодарен за помощь!!!
he][es добавил 25-01-2006 в 12:46:50:
Ваабще ничего не могу понять, выбирается, и вроде бы даже то что надо, НО почему то из табл. structura_kks выводятся не все строки!
Не выводятся те строки для которых указаны контр.задания (табл. contr_zadania) на прошлый (к примеру) год. Т.е. те где не contr_zadania.kz_to_year = '2006'
__________________
Админ - вождь Апачей...
Все чудненько работает 
SELECT structura_kks.id, structura_kks.title, structura_kks. LEVEL, structura_kks.cleft, structura_kks.cright, structura_kks.fio,
contr_zadania.id AS contr_zadania_id, contr_zadania.kz_to_year AS year_of_kz, contr_zadania.kz_year AS to_year,
contr_zadania.kz_I_kvartal AS kv_1, contr_zadania.kz_II_kvartal AS kv_2, contr_zadania.kz_III_kvartal AS kv_3,
contr_zadania.kz_IV_kvartal AS kv_4
FROM structura_kks LEFT OUTER JOIN
contr_zadania ON contr_zadania.structura_kks_id = structura_kks.id
WHERE contr_zadania.kz_year = '2006' OR contr_zadania.kz_year IS NULL
ORDER BY structura_kks.cleftWHERE (contr_zadania.kz_year = '2006') OR (contr_zadania.kz_year IS NULL)
__________________
Тест - проверка верности!
Viktor я прошу прощения за некую дезинформацию, но у меня тут поля просто попереименовались... Т.что я всё правильно писал...
При таком запросе выводятся не все записи из таблицы structura_kks, НЕ выводятся те для которых установлены задания (табл. contr_zadania) не удовлетвор. условию... Т.е. в данном случае строки 1 и 2. (там в таблицах для них есть задания на 2005 год)...
__________________
Админ - вождь Апачей...
quote:
НЕ выводятся те для которых установлены задания (табл. contr_zadania) не удовлетвор. условию...
__________________
Тест - проверка верности!
Viktor вы меня не правильно поняли...
К примеру для записи №4 в таблице structura_kks установлено задание (табл. contr_zadania) на 2005 год, и при запросе с условием = 2006, строка №4 из structura_kks ВООБЩЕ не выведется...
А мне нужно что бы если для 4ой строки небыло подходящего задания (=2006) то выводилась инф-ия из structura_kks.
Те.
structura_kks
1 - запись1
2 - запись2
3 - запись3
4 - запись4
contr_zadania
1 - 2 - 2006 - 20000
2 - 3 - 2006 - 34445
3 - 1 - 2005 - 56784
При таком раскладе после запроса мы получим
запись2 - 20000
запись3 - 34445
запись4 - null
А первой записи НЕТ... Теперь понятно?
__________________
Админ - вождь Апачей...
Если я правильно понял, то значения из contr_zadania должны быть только для 2006 года, а для остальных записей из structura_kks Null?
Если так, то вот вариант
SELECT structura_kks.id, structura_kks.title, structura_kks. LEVEL, structura_kks.cleft, structura_kks.cright, structura_kks.fio,
c.id AS contr_zadania_id, c.kz_to_year AS year_of_kz, c.kz_year AS to_year,
c.kz_I_kvartal AS kv_1, c.kz_II_kvartal AS kv_2, c.kz_III_kvartal AS kv_3,
c.kz_IV_kvartal AS kv_4
FROM structura_kks LEFT OUTER JOIN (select * from contr_zadania where kz_year = '2006') c
ON c.structura_kks_id = structura_kks.id
ORDER BY structura_kks.cleft
__________________
Тест - проверка верности!
И снова здравствуйте 
Такой казалось бы простой запрос, а не работает...
Таблица1:
id, type, price
Таблица2:
id, title
надо первую сгруппировать по type посчитать SUM(price) и проименовать эти группы из Табл.2... (как вы догадались id Т.2 это те самые type из Т.1)
Делаю:
SELECT structura_dohodov.id, SUM(dohodi.total_price_nds) AS dohodi_total FROM dohodi INNER JOIN structura_dohodov ON (dohodi.structura_dohodov_id = structura_dohodov.id) WHERE (dohodi.structura_kks_id = 4) AND (YEAR(dohodi.data_dohoda) = '2006') GROUP BY structura_dohodov.id
И всё казалось бы хорошо и счастье близко, но если я вставлю structura_dohodov.title он грязно выругается на то что его нет в гроуп, а туда его ставить нельзя т.к. оно типа text...
Вот такой затык. Что делать?
he][es добавил 30-03-2006 в 11:14:02:
З.Ы. GROUP BY dohodi.structura_dohodov_id тоже не проканывает...
__________________
Админ - вождь Апачей...
quote:
а туда его ставить нельзя т.к. оно типа text...

quote:
GROUP BY dohodi.structura_dohodov_id тоже не проканывает...

__________________
Тест - проверка верности!
Иначе никак?... :/ ладно... поменяю тип =)
(я всё парюсь с типами данных... Нигде чётко не могу найти описаний..)
__________________
Админ - вождь Апачей...
quote:
Нигде чётко не могу найти описаний
__________________
Тест - проверка верности!
| Формат времени GMT. Текущее время 21:09. | Страницы (4): « Первая ... « 2 3 [4] Показаны 58 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.