Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:08 03.06.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Малко помощ диря....нови  
Автор Aйeз Ceдaй ()
Публикувано06.05.04 22:19



щото нещо зациклих и съвсем изключих....
Та ....имам две таблици
1. Registry
ID | Name | FName |
-------------------------------
3076 Иван Иванов

PK = ID

2.Таблица Moves
ID | Year |
----------------------
3076 2003
3076 2002
3076 2001

PK = ID, Year ; FK=ID

С queryто ми получавам резултат:
3076, Иван, Иванов, 2003
3076, Иван, Иванов, 2002
3076, Иван, Иванов, 2001

А аз искам резултат от вида:
3076, Иван, Иванов, 2003,2002,2001



Тема Re: Малко помощ диря....нови [re: Aйeз Ceдaй]  
Автор Пepин (овълчил се)
Публикувано06.05.04 23:42



Ами най накратко само със SQL може да се напише с много лефт джойнове, ама става грозно. Затова курсор, цикъл ...



Тема Re: Малко помощ диря....нови [re: Aйeз Ceдaй]  
Автор hadministratora (хабсурден)
Публикувано06.05.04 23:58



И как точно ти изглежда query-то?

So long and thanks for all the fish!


Тема Re: Малко помощ диря....нови [re: Пepин]  
Автор Aйeз Ceдaй ()
Публикувано07.05.04 00:02



тц.
ще ми се да е с query, без курсор...тъпото е, че изтъпях тотално...
пробвах и със select case, ама мойто циклене си продължава.......... и пак достигам до резултата, който не ми върши работа...
затова иде реч за помощ....



Тема Re: Малко помощ диря....нови [re: hadministratora]  
Автор Aйeз Ceдaй ()
Публикувано07.05.04 00:08



е то е ясно как...
въпросът ми е как да го докарам то резултатът, който искам или другото решение на проблема ми е от properties - Report builder - или на Repeating frame, или на field, но там четох хелпове и до никъде не стигнах.



Тема Re: Малко помощ диря....нови [re: hadministratora]  
Автор Пepин (овълчил се)
Публикувано07.05.04 04:39



Абе куирито е сайдинска работа и е доста чийтване:



if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Moves]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Moves]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Registry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Registry]
GO

CREATE TABLE [dbo].[Moves] (
[ID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Yr] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

INSERT [Moves]([ID],[Yr]) VALUES('3076','2003')
INSERT [Moves]([ID],[Yr]) VALUES('3076','2002')
INSERT [Moves]([ID],[Yr]) VALUES('3076','2001')
INSERT [Moves]([ID],[Yr]) VALUES('3077','2000')
INSERT [Moves]([ID],[Yr]) VALUES('3077','2002')


CREATE TABLE [dbo].[Registry] (
[ID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[FName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

INSERT [Registry]([ID],[Name],[FName]) VALUES('3076','John','Doe')
INSERT [Registry]([ID],[Name],[FName]) VALUES('3077','Tim','Smith')


SELECT R.*, M1.Yr, M2.Yr, M3.Yr
FROM Registry AS R
LEFT OUTER JOIN Moves AS M1 ON
R.ID = M1.ID
AND M1.Yr IN (SELECT MAX (Yr) FROM Moves WHERE ID = M1.ID)
LEFT OUTER JOIN Moves AS M2 ON
R.ID = M2.ID
AND M2.Yr IN (SELECT MAX (Yr) FROM Moves WHERE ID = M2.ID AND Yr NOT IN (M1.Yr))
LEFT OUTER JOIN Moves AS M3 ON
R.ID = M3.ID
AND M3.Yr IN (SELECT MAX (Yr) FROM Moves WHERE ID = M3.ID AND Yr NOT IN (M1.Yr, M2.Yr))



Което дава:


ID Name FName Yr Yr Yr
---- ---- ----- ---- ---- ----
3076 John Doe 2003 2002 2001
3077 Tim Smith 2002 2000 NULL


Разбира се това с допускането че Moves има комплексен ключ (ID, Yr).
Представете си колко ме мързи да работя та седнах да напиша това.



Тема Re: Малко помощ диря....нови [re: Пepин]  
Автор Aйeз Ceдaй ()
Публикувано07.05.04 09:01



Ех, Перине, Перине и тез жлъти очи...

не ми върши работа решението ти с дроп и инсерт и криейт тейбъл.. Нали се сещаш, че и двете таблици са доста по-сложни и имат сумати др. фк, които в случая не са съществени... (напр. ФК към таблицата дето записвам кой на коя дата, коя разписка и т.н си е платил даденото задължение. ) За всяка година за всеки ид има по един запис.



Тема Re: Малко помощ диря.... [re: Aйeз Ceдaй]  
Автор NDeu (динозавър)
Публикувано07.05.04 10:52



Той Перина добре го е написал.
Ти гледай селекта. Другото е само скрипт за тестване
Кофтито е, че така става само ако предварително знаеш колко години ще имаш в един ред (max).
Иначе пътя "зациклих" е верния, но без "съвсем изключих"



Тема Re: Малко помощ диря....нови [re: Aйeз Ceдaй]  
АвторRep (Нерегистриран)
Публикувано07.05.04 11:50



Кажи каква е базата поне?

И това "2003,2002,2001" в отделни колони ли го искаш, или като низ в една колона? Ако искаш да е в отделни, без динамичен SQL няма да минеш. Ако е като низ в една, може да се направи нещо по въпроса.



Тема Re: Малко помощ диря....нови [re: Aйeз Ceдaй]  
Автор JohnT (onehalf)
Публикувано07.05.04 11:49



ако кажеш че ти трябва за MySQL веднага мога да ти дам 2 решения за проблема




Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.