Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Базы данных » MySQL » Вопросы по MS SQL Server
Страницы (4): « Первая ... « 2 3 [4]
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #80226]

quote:
"вид"="представление"?

Да.
quote:
А не лучше ли сделать функцию для выборки таких результатов

и

А он возьмёт значения для WHERE "извне"?..



В этом случае нужно использовать хранимую процедуру.
(тот же вид, но с параметром )
quote:
он выбирает не все записи из таблицы structura_kks, а только те, к которым есть привязка из contr_zadania

Логично, т.к. поля записей, которые не привязаны содержат NULL.

Используй в условии отбора

code:
WHERE contr_zadania.kz_to_year = '2006' 
OR contr_zadania.kz_to_year IS NULL

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-01-2006 10:15
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #80371]

Viktor не... нифига не работает!..
Может плохо объяснил:
Таблица structura_kks это список подразделений
Таблица contr_zadania содержит задания для стр. подразделений привязанные по id. НО не для всех подразделений установлены задания, а так же для одного стр. подразделения могут быть установлены задания на несколько лет! Надо выбрать все стр. подразделения и задания на один год...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-01-2006 15:51
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #80382]

У меня работало...

Как вариант, кинь нужные таблицы потестить.

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-01-2006 11:35
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #80385]

В приложении 2 табл.
Про требуемую выборку я написал чуть выше...
Заранее благодарен за помощь!!!

he][es добавил 25-01-2006 в 12:46:50:
Ваабще ничего не могу понять, выбирается, и вроде бы даже то что надо, НО почему то из табл. structura_kks выводятся не все строки!
Не выводятся те строки для которых указаны контр.задания (табл. contr_zadania) на прошлый (к примеру) год. Т.е. те где не contr_zadania.kz_to_year = '2006'

Файл: tables.rar
Был скачан 4 раз(а).

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-01-2006 12:34
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #80390]

Все чудненько работает

code:

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.cleft



Проблема была в том, что ты условие ставил не по тому полю.
Ты использовал contr_zadania.kz_to_year, а нужно contr_zadania.kz_year.

В том у тебя цифры явно к году не относящиеся (например 15000)

Для безошибочности и лучшего понятия условия сервером можно условие записать так

code:
WHERE (contr_zadania.kz_year = '2006') OR (contr_zadania.kz_year IS NULL)

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-01-2006 18:55
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #80391]

Viktor я прошу прощения за некую дезинформацию, но у меня тут поля просто попереименовались... Т.что я всё правильно писал...
При таком запросе выводятся не все записи из таблицы structura_kks, НЕ выводятся те для которых установлены задания (табл. contr_zadania) не удовлетвор. условию... Т.е. в данном случае строки 1 и 2. (там в таблицах для них есть задания на 2005 год)...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-01-2006 21:13
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #80432]

quote:
НЕ выводятся те для которых установлены задания (табл. contr_zadania) не удовлетвор. условию...

Ну так и не надо ставить условие = 2006 если нужны данные и за другие годы.

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-01-2006 13:08
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #80438]

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
А первой записи НЕТ... Теперь понятно?

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 28-01-2006 18:31
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #80484]

Если я правильно понял, то значения из contr_zadania должны быть только для 2006 года, а для остальных записей из structura_kks Null?

Если так, то вот вариант


code:

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



Вложенный запрос выбирает данные из contr_zadania за нужный год, а потом объединяет их с structura_kks.
Выводятся все записи и где не 2006 - Null.

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 02-02-2006 09:43
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #81300]

И снова здравствуйте
Такой казалось бы простой запрос, а не работает...
Таблица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 тоже не проканывает...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-03-2006 11:05
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #81302]

quote:
а туда его ставить нельзя т.к. оно типа text...

Логично.
Поля типа ТЕХТ (для хранения БОЛЬШИХ текстовых данных (до 2 Гб)) в группировке использовать нельзя.

Замени тип данных на VARCHAR(n), где n - до 8000 символов.
quote:
GROUP BY dohodi.structura_dohodov_id тоже не проканывает...

Тоже логично...
Если в сроке запроса до агрегатной функции (SUM()) стоит
SELECT structura_dohodov.id,
то и в группировке должно быть structura_dohodov.id!!!


Если менять тип данных в падло или нельзя, то создай вид (представление) на основе своего запроса

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

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-03-2006 11:41
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #81307]

Иначе никак?... :/ ладно... поменяю тип =)
(я всё парюсь с типами данных... Нигде чётко не могу найти описаний..)

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-03-2006 13:08
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #81311]

quote:
Нигде чётко не могу найти описаний

Так я ж тебе выкладывал в эту тему!

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-03-2006 15:12
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя

Страницы (4): « Первая ... « 2 3 [4]


Формат времени GMT. Текущее время 22:57.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01489305 seconds (56.03% PHP - 43.97% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.