forum.ge
reklama
თბილისის ფორუმი ... წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · ჩატი
Pages: (2) [1] 2   ( გადავიდეთ პირველ წაუკითხავ წერილზე ) გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> SQL SERVER 2008, help me...
GT200
Super Member


****
ჯგუფი: Registered
წერილები: 254
წევრი No.: 114802
რეგისტრ.: 30-April 10

  გამოგზავნილია: 16 Jun 2012, 16:28  #31695025      · პროფილი · პირადი მიმოწერა · ელფოსტა · aim
მოგესალმებით ფორუმელებო.
ერთი დახმარება მჭირდება. მოკლედ რაშია საქმე.

მაქვს ორი სვეტი
1) ID უნიკალური
2) სტატუსი

მინდა რომ ერთიდან 30'მდე ID'ის მიყოლებით რომელი სტატუსიც მეორდება ის ციფრები დავიჭირო.

მაგალითად

ID - 1,2,3,4,5,6,.....
სტატუსი იყოს - 1,1,1,1,1,1......

იმედია ნორმალურად ავხსენი.
Lekso-Dav
ZZZZZZZ


*****
ჯგუფი: Members
წერილები: 3756
წევრი No.: 43573
რეგისტრ.: 8-October 07

გამოგზავნილია: 16 Jun 2012, 17:55  #31695963      · პროფილი · პირადი მიმოწერა · ელფოსტა · im
QUOTE
მინდა რომ ერთიდან 30'მდე ID'ის მიყოლებით

გაურკვევლად წერია, აზრზე რომ არაფერი ვთქვათ ქართული ნაწერია არასწორი ...

რაც მე გავიგე გარკვეულ შუალედში გინდა იმ იდ-ების გაგება რომელთაც ერთნაირი სტატუსი აქვთ.
ციკლში დაუარე მაგ შუალედს და დაასელექტე id FROM YOURTABLE WHERE STATUS=x

This post has been edited by Lekso-Dav on 16 Jun 2012, 17:58
Tortales
Member


***
ჯგუფი: Registered
წერილები: 67
წევრი No.: 55553
რეგისტრ.: 12-March 08

გამოგზავნილია: 16 Jun 2012, 21:16  #31698653      · პროფილი · პირადი მიმოწერა · ელფოსტა
select status from mytable where id<30
group by status
having count(status)>1


--------------------
Feci quod potui, faciant meliora potentes...

...არაფერი გამომივა,
არაფრისთვის უნდა ვცადო...
GT200
Super Member


****
ჯგუფი: Registered
წერილები: 254
წევრი No.: 114802
რეგისტრ.: 30-April 10

გამოგზავნილია: 16 Jun 2012, 21:40  #31698967      · პროფილი · პირადი მიმოწერა · ელფოსტა · aim
Lekso-Dav
Tortales

მადლობა გამოხმაურებისთვის მაგრამ სრულიად სხვა რამ მიწერია მე და სურულიად სხვა რამ მომწერეთ თქვენ.

Lekso-Dav
მე რომ მეუბნები გაურკვევლად წერიაო? რა ვერ გაიგე?
და რა მომწერე შენ პასუხად წაიკითხე smile.gif)
samuraisxmali
მე ვარ ავი მუსაიფი კახთ ბატონის ირაკლისა


****
ჯგუფი: Registered
წერილები: 464
წევრი No.: 77512
რეგისტრ.: 7-December 08

გამოგზავნილია: 16 Jun 2012, 22:44  #31699893      · პროფილი · პირადი მიმოწერა · ელფოსტა
GT200
შეაბრუნე მერე შენც კიდე, აირჩიე იდ მონაცემებიდან სადაც სტატუსი უდრის "სტატუსს".
merabk
Crazy Member


*****
ჯგუფი: Registered
წერილები: 1391
წევრი No.: 56751
რეგისტრ.: 26-March 08

გამოგზავნილია: 16 Jun 2012, 23:53  #31700985      · პროფილი · პირადი მიმოწერა · ელფოსტა
QUOTE
მინდა რომ ერთიდან 30'მდე ID'ის მიყოლებით რომელი სტატუსიც მეორდება ის ციფრები დავიჭირო.

მართლაც გაუგებრად წერია, მაგრამ მგონი მივხვდი smile.gif
კურსორი უნდა მაგ საქმეს, და იქიდან გამომდინარე შედეგი როგორი გჭირდება, კურსორში შესაბამისი მოქმედება


--------------------
ლომბარდის პროგრამა
http://soft.lombardebi.ge
GT200
Super Member


****
ჯგუფი: Registered
წერილები: 254
წევრი No.: 114802
რეგისტრ.: 30-April 10

გამოგზავნილია: 17 Jun 2012, 12:34  #31705793      · პროფილი · პირადი მიმოწერა · ელფოსტა · aim
merabk

სწორედ გამიგე მეგობარო. კურსორი იყო ამ საქმეში საჭირო. გავაკეთე მადლობა ყველას გამოხმაურებისთვის.
თუ ვინმეს დაგჭირდათ ეს ამბავი PM'ში მომწერეთ და აგიხსნით როგორ კეთდება smile.gif
KORSA
Архиепископ Кентерберийский


*****
ჯგუფი: Members
წერილები: 4144
წევრი No.: 34347
რეგისტრ.: 5-May 07

გამოგზავნილია: 17 Jun 2012, 19:14  #31711549      · პროფილი · პირადი მიმოწერა · ელფოსტა
რათ უნდა ხალხო ამას კურსორი არ გამაგიჟოთ მილიონნაირი გადაწყვეტა არსებობს ამ ამოცანის და ყველაზე ცუდი კურსორია smile.gif
ან მე არასწორად გავიგე ამოცანა biggrin.gif

This post has been edited by KORSA on 17 Jun 2012, 19:14


--------------------
Б.eз О.пределенного М.есто Ж.ительство


No SyStem Is Safe

последние слова сына программиста
- Папа, что значит "форматирование диска С: закончено"?
dadli
ვაშლი ვაშლი ვაშლი


****
ჯგუფი: Users Awaiting Email Confirmatio
წერილები: 475
წევრი No.: 131685
რეგისტრ.: 25-May 11

გამოგზავნილია: 17 Jun 2012, 20:17  #31712613      · პროფილი · პირადი მიმოწერა · ელფოსტა
GT200
QUOTE
მე რომ მეუბნები გაურკვევლად წერიაო? რა ვერ გაიგე?

შენი კითხვა გაუგებარია თავიდან-ბოლომდე
რა აზრიც მე გამოვიტანე, მაგის მიხედვით, სწორი პასუხი გაგცა Tortales-მა.

This post has been edited by dadli on 17 Jun 2012, 20:18


--------------------
არსებობს ადამიანების 10 კატეგორია, ერთ ნაწილს ესმის ბინარული ნუმერაციის სისტემა, მეორეს არა.
merabk
Crazy Member


*****
ჯგუფი: Registered
წერილები: 1391
წევრი No.: 56751
რეგისტრ.: 26-March 08

გამოგზავნილია: 18 Jun 2012, 00:01  #31716616      · პროფილი · პირადი მიმოწერა · ელფოსტა
QUOTE
რათ უნდა ხალხო ამას კურსორი არ გამაგიჟოთ მილიონნაირი გადაწყვეტა არსებობს ამ ამოცანის და ყველაზე ცუდი კურსორია
კი, უკურსოროდაც შეიძლება, ოღონდ ძალიან ჩახლართული სელექტი გამოვა smile.gif
თან, გინდა არ გინდა შერვერი შიდა კურსორს მაინც შექმნის, თან არა ერთს
GT200
Super Member


****
ჯგუფი: Registered
წერილები: 254
წევრი No.: 114802
რეგისტრ.: 30-April 10

გამოგზავნილია: 18 Jun 2012, 02:12  #31718512      · პროფილი · პირადი მიმოწერა · ელფოსტა · aim
dadli
QUOTE
შენი კითხვა გაუგებარია თავიდან-ბოლომდე


რა არის აქ გაუგებარი გამაგებინე? ID უნდა გაიაროს ბიჯის მიხედვით და ერთნაირი სტატუსები უნდა ამოყაროს 10 ან 10'ზე მეტი თუ იქნება ბაზაში. მოდი ეხლა ნუ ვიკამათებთ იმაზე თუ რამდენად სწორედ დავწერე და რამდენად არა. გამგებმა გაიგო ძმაო.

KORSA
QUOTE
რათ უნდა ხალხო ამას კურსორი არ გამაგიჟოთ მილიონნაირი გადაწყვეტა არსებობს ამ ამოცანის და ყველაზე ცუდი კურსორია

როგორც კურსორია ცუდი ისეა ტრიგერიც მაგრამ გვერდი ვერ აუარე ვერც ერთს და ვერც მეორეს. იქნებ უკეთესი ვარიანტი შენ შემოგვთავაზო და დაწერო სხვანაირად როგორ შეიძლება გაკეთდეს ეგ?! ისე რომ ქუერმა დიდი დრო არ მოანდომოს?!

KORSA
Архиепископ Кентерберийский


*****
ჯგუფი: Members
წერილები: 4144
წევრი No.: 34347
რეგისტრ.: 5-May 07

გამოგზავნილია: 18 Jun 2012, 17:07  #31725762      · პროფილი · პირადი მიმოწერა · ელფოსტა
GT200
არ ვიცი ხალხო რაღაც ისეთ გასაკვირ რამეებს მეუბნებით რო არ ვიცი ამოცანა კიდევ ერთხელ განიმარტეთ მაშინ თორე ძაან მარტივი რამე მგონია მე და მრცხვენია დაწერის biggrin.gif
რეზალტი მანახე როგორს ელოდები უფრო მარტივი იქნება აღსაქმელად . თორე ვერ გავიგე მგონი

This post has been edited by KORSA on 18 Jun 2012, 17:11
dadli
ვაშლი ვაშლი ვაშლი


****
ჯგუფი: Users Awaiting Email Confirmatio
წერილები: 475
წევრი No.: 131685
რეგისტრ.: 25-May 11

გამოგზავნილია: 19 Jun 2012, 01:24  #31733593      · პროფილი · პირადი მიმოწერა · ელფოსტა
GT200
QUOTE
ერთნაირი სტატუსები უნდა ამოყაროს 10 ან 10'ზე მეტი თუ იქნება ბაზაში

ეს პირობა სად გქონდა პირველ პოსტში? იქ სულ სხვა რამე დაწერე, მაგრამ ამ შემთხვევაშიც და იმ შემთხვევაშიც მარტივი სელექტითაც შეიძლება, არც კურსორია საჭირო და არც ტრიგერი.
საბოლოოდ ჩამოაყალიბე პირობა და
QUOTE
რეზალტი მანახე როგორს ელოდები
თუ უკურსორ-ტრიგერო პასუხი გინდა, თუ არადა, ამ თემაზე შენთან კამათს საერთოდ არ ვაპირებ.

Crypto
კატა უძაღლო ქვეყანაში


******
ჯგუფი: Members
წერილები: 7145
წევრი No.: 9780
რეგისტრ.: 3-May 05

გამოგზავნილია: 19 Jun 2012, 10:49  #31736252      · პროფილი · პირადი მიმოწერა · ელფოსტა
QUOTE
ერთიდან 30'მდე ID'ის მიყოლებით რომელი სტატუსიც

აქ აქცენტის დასმა სიტყვა "მიყოლებით"-ზე უნდა და ერთი შეხედვით იმიტომაა ცოტა გაურკვეველი ამოცანა smile.gif
ანუ მიმდევრობით თუ გამეორდა 10-ჯერ ან მეტჯერ ერთიდაიგივე სტატუსი, ეგაა მოსაძებნი, როგორც გავიგე

თუ ცხრილია Table_1
ID Status
1 1
2 1
3 1
4 0
5 0
6 0
7 2
8 2
9 1
10 1
11 2
12 2

მიმდევრობის მოძებნა და გაფილტვრა შეიძლება ასე გაკეთდეს უკურსოროდ
SQL
WITH Temp AS (
select A.ID, A.[Status],
CASE WHEN B.ID IS NULL THEN 'MIN' ELSE NULL END MIN,
CASE WHEN C.ID IS NULL THEN 'MAX' ELSE NULL END MAX
from Table_1 A
LEFT JOIN Table_1 B ON B.Status=A.Status AND (B.ID=A.ID-1 )
LEFT JOIN Table_1 C ON C.Status=A.Status AND (C.ID=A.ID+1 )
)

SELECT *
FROM ( SELECT [Status], MIN, MAX, (MAX-MIN+1) DIFF
FROM ( select Status, ID MIN,(SELECT MIN(ID) FROM Temp WHERE MAX='MAX' AND ID>=A.ID AND [Status]=A.[Status]) MAX
from Temp A
WHERE MIN='MIN'
) B
) C
WHERE DIFF>2


დააბრუნებს
Status MIN MAX DIFF
1 1 3 3
0 4 6 3
მთლად ოპტიმალური არაა, მარა ალბათ გასაგებია აზრი
თუ ID არ მიყვება ზუსტად მიმდევრობით და გამოტოვებებია, მის ნაცვლად შეიძლება ROW_NUMBER()-ის გამოყენება

This post has been edited by Crypto on 19 Jun 2012, 11:40


--------------------
Какая гадость, какая гадость... эта ваша заливная рыба!

Standby mode: ON.
GT200
Super Member


****
ჯგუფი: Registered
წერილები: 254
წევრი No.: 114802
რეგისტრ.: 30-April 10

გამოგზავნილია: 8 Jul 2012, 14:25  #32030393      · პროფილი · პირადი მიმოწერა · ელფოსტა · aim
dadli
კაროჩე მე კურსორით გავაკეთე ეგ და არანაირი ტირგერი არ გამიკეთებია იქ. თუ რამე გაურკვეველია გეუბნებით განახებთ კოდს როგორც კეთდებათქო და კიდევ რაგაც ამოცანებზე ლაპარაკობთ. რა სისულელეა კამათს აქმ მე ნამდვილად არავისთან ვაპირებ მითუმეტეს იმაზე თუ ეს როგორ კეთდება და ის როგორ.
Crypto
სწორედ გაგიგია ძმაო.
0 წევრი ათვალიერებს ამ თემას (0 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options Pages: (2) [1] 2  გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის ინტერნეტთან კავშირს უზრუნველყოფს: კავკასუს ონლაინი
[ Script Execution time: 0.0322 ]   [ 11 queries used ]   [ GZIP Disabled ]