|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|
Цикл for в mssql24.02.2011, 21:57. Показов 21956. Ответов 20
Метки нет (Все метки)
доброго времени суток. жизнь заставила сделать вот такую выборку
![]() для простоты смоделирую так: таблица, поля фамилия, цвет.фамилия содержит данные о фамилиях людей,например петров, сидоров и тд., цвет-цвет карандашей, которые есть у человека, например: красный, жёлтый, синий, зелёный (это я модельный пример составил чтобы проще было) вот, и надо сделать вроде бы не хитрую такую выборку, чтобы данные представились след. образом иванов: красных карандашей-15, жёлтых 8, корчиневых -0 и тд., то есть для каждого человека из списка фамилий (фамилии могут повторяться, те в таблице моут содержаться строки типа иванов : 5 красных, 8 зелёных, 9 жёлтых и потом ещё строка иванов: 80 синих,12 красных и тд-пусть цветов всего 4 будет) надобно вывести количество карандашей каждого из 4-х цветов для этого человека я думаю что это можно было бы замутить в цикле для каждого [человек] из [ списка всех человеков] select [этот самый человек], count (*) from base where [человек] =[ этот самый человек] and [цвет] =[ красный] (и так для каждого цвета) причём надо всё сделать одним запросом, чтобы потом это дело автоматизировать.. такое возможно впринципе в mssql? кто нибудь такое реализовывал? подскажите пожалуйста
0
|
|
| 24.02.2011, 21:57 | |
|
Ответы с готовыми решениями:
20
Цикл в MSSQL Совместимость datetime в MSSQL 7 и MSSQL 2000 Перенос БД из MSSQL 6.5 на MSSQL 7.0 |
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|
| 25.02.2011, 06:30 [ТС] | |
|
спасибо большое за ответ! а подскажите пожалуйста, каким образом можно с помощью group by победить?
я в sql не особо компетентен, и я сначала хотел написать что то типа : select [Фамилия], count (*) from base where [цвет]= [ текущей фамилии] и думал, чтобы пробежаться по всем фамилиям и обратиться к текущей и при этом всё одним запросом - как раз for и нужен а каким образом здесь можно с помощью group by выкрутиться ?
0
|
|
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|||||||||||||||||||||
| 25.02.2011, 23:19 [ТС] | |||||||||||||||||||||
|
спасибо!попытаюсь разобраться
Добавлено через 16 часов 33 минуты спасибо за полезную ссылку, но я видимо немного не допонял.. мне надо получить выборку такую:
а вот каким обрзом мне получить в этом же запросе количество карандашей и других цветов для каждого из [человек] именно в таком виде как я указал выше? я пробовал так,
0
|
|||||||||||||||||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|||||||
| 26.02.2011, 22:16 [ТС] | |||||||
|
ну да, я тоже думал об этом, вот только в какой части кода должна быть эта вложенность и какая, никак не соображу, я просто никогда ещё вложенных не делал, только простые статические в основном
Добавлено через 22 часа 24 минуты
0
|
|||||||
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
|||||||
| 26.02.2011, 22:32 | |||||||
1
|
|||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|
| 26.02.2011, 22:39 [ТС] | |
|
спасибо за ответ!
теперь пишет Incorrect syntax near 'количество красных'. и Incorrect syntax near the keyword 'FROM'... непонятно а вообще, по смыслу, должен ли такой код вернуть данные в таком виде, как я хочу ?
0
|
|
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
||||||
| 26.02.2011, 22:48 | ||||||
1
|
||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
||
| 26.02.2011, 22:57 [ТС] | ||
но теперь пишет почему то Invalid column name '[человек]', почему так, вообще неясно мне, ведь это поле есть , почему Invalid .. ой, надо было from table2 добавить в конец запроса, но тогда у меня суммируется для каждого человека число красных и синих не для него одного а число красных и синих вообще всё
0
|
||
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
||||||
| 26.02.2011, 23:01 | ||||||
|
Вообще то считается плохим тоном именовать таблицы и столбцы на русском языке
Если бы вы привели примеры таблиц было бы легче разобраться !!
1
|
||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
||
| 26.02.2011, 23:12 [ТС] | ||
|
спасибо большое
0
|
||
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
||||||
| 27.02.2011, 08:57 | ||||||
1
|
||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|
| 27.02.2011, 16:42 [ТС] | |
|
sanya0107, спасибо огромное!! как раз то делает, что мне и надо!! спасибо что уделили мне своё время и разобрались!
вот скажите пожалуйста только, что такое t1,t2-это видимо что то типа параметров?это какой тип запроса Вы применили? вложенный и параметрический ? я просто почитать хочу про это,интересно стало ))
0
|
|
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
||||||
| 27.02.2011, 16:55 | ||||||
|
Хорошая книга по SQL это книга Грабера! а t1, t2, t3 это просто псевдонимы таблиц для удобства и сокращения текста и точной идентификации полей принадлежности к таблице ! тоже самое как вы используете в
1
|
||||||
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
||
| 27.02.2011, 17:09 [ТС] | ||
|
Грабер Мартин - SQL, 2003 -она видимо ? 672 страницы - ого-го))
хотя в аннотации написано
0
|
||
|
126 / 126 / 24
Регистрация: 14.02.2010
Сообщений: 289
|
|
| 27.02.2011, 17:19 | |
|
В основном синтаксис везде одинаков! Есть маленькие нюансы у каждой СУБД!
1
|
|
|
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
|
|
| 27.02.2011, 18:00 [ТС] | |
|
спасибо, буду читать))спасибо за помощь ещё раз
0
|
|
|
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
|
|||||||
| 27.02.2011, 21:30 | |||||||
|
не знают общеизвестных стандартных приёмов:
1
|
|||||||
| 27.02.2011, 21:30 | |
|
Помогаю со студенческими работами здесь
20
Переход с mssql Express 2008 R2 на mssql 2012 Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... Совместимость datetime в MSSQL 7 и MSSQL 2000
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|