|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
Pomogite sostavit' query ... Est 2 tablichki Name | Value ------------ Ann | 9 Bil | 21 John | 4 George| 26 Animal | Color -------------- Cat | White Dog | Black Cow | Brown Result set needed: Name | Value | Animal | Color ------------------------------- Ann | 9 | Cat | White Bil | 21 | Dog | Black John | 4 | Cow | Brown George | 26 | NULL | NULL PLEASE HELP! Its all because In Delphi 5.0 QuickReport I can`t place two detail bands! If it is possible, please help me. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 13:08 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
А почему не так? Ann 9 Dog Black Bill 21 Cow Brown John 4 Cat White George 26 Dog Black Как эти таблицы относятся друг к другу? Кто из них parent? Если предположить, что первая таблица парент и есть внешний ключ, например ID , тогда запрос будет выглядеть так: select table1.Name, table1.Value, table2.Animal, table2.Color from table1 left join table2 on table1.ID = table2.ID ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 13:35 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
Vot vtom to i djelo chto tam netu parent. Prosto nado postavitj dve toblici rjadom. Bez kokoj to svjazki. Gatis. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 13:54 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
Тогда, IMHO одним запросом обойтись нельзя. Если нет отношений, оо надо их создать. Если просто нужно связать 1-ю запись с 1-ой, 2-ю со 2-ой и т.д., то предложу такой вариант CREATE TABLE #Temp1 (ID Identity(1,1), Name varchar(10), Value int) CREATE TABLE #Temp2 (ID Identity(1,1), Animal varchar(10), Color varchar(10)) SELECT IDENTITY(int, 1,1) AS ID, Name, Value INTO #Temp1 FROM Table1 SELECT IDENTITY(int, 1,1) AS ID, Animal, Color INTO #Temp2 FROM Table2 -- теперь можно испльзовать запрос, который предложил Genady select #temp1.Name, #temp1.Value, #temp2.Animal, #temp2.Color from #temp1 left join #temp2 on #temp1.ID = #temp2.ID ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 14:25 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
Честно говоря, я просто не понимаю смысла такого запроса. Если сделать select * from table1, table2 получим декартово произведение этих табличек Такой результат не устроит? Если нет, тогда разве что через временный таблички, хотя в Вашем примере George 26 NULL NULL, поэтому я подозреваю, что пирнцип объединения все же есть. Посмотрите схему данных, вероятнее всего Вы не правильно задали условие, опишите задачу подробнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 14:45 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
Может быть и очень некрасиво, но нужный результат достигается, ради спортивного интереса буду очень признателен, если кто-то покожет как это можно сделать без курсоров и цикла. DECLARE c1 cursor for SELECT * from table1 DECLARE c2 cursor for SELECT * from table2 DECLARE @name char(10), @value int, @Animal char(10), @Color char(10), @i int, @j int, @b bit SELECT @i = COUNT(*) from table1 SELECT @j = COUNT(*) from table1 SET @b = 0 OPEN c1 OPEN c2 SET NOCOUNT ON WHILE @i > 0 and @j > 0 BEGIN SELECT @name = null, @value = null, @Animal = null, @Color = null fetch c1 into @name,@value fetch c2 into @Animal, @Color IF @b = 0 BEGIN select @name as [Name], @value as Value, @Animal as Animal, @Color as Color into #table3 SET @b = 1 END ELSE INSERT #table3([Name], Value, Animal, Color) VAlues(@name , @value , @Animal , @Color ) SET @i = @i - 1 SET @j = @j - 1 END CLOSE c1 CLOSE c2 deallocate c1 deallocate c2 SET NOCOUNT OFF select * from #table3 drop table #table3 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 16:15 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
2 Slawa Ради спортивного интереса посмотрите что написал Glory двумя часами раньше Вас Всё что Вы написали у него уместилось в 4 строки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2001, 16:37 |
|
Pomogite sostavit' query ...
|
|||
---|---|---|---|
#18+
2SergSuper Согласен что там было намного красивее, но вопрос ставился так, чтоб при этом не учавствовали дополнительные столбцы идентификаторы Цитирую Gatis'a >Vot vtom to i djelo chto tam netu parent. Prosto nado postavitj dve >toblici rjadom. Bez kokoj to svjazki. В моём примере это соблюдено, хотя ещё раз подчеркиваю очень некрасиво и я не рекомендовал бы никому работать таким образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2001, 10:00 |
|
|
start [/forum/topic.php?fid=46&msg=32002977&tid=1827209]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 280ms |
total: | 398ms |
0 / 0 |