надо сгруппировать строки, а разные значения в столбце записать в одну строку через запяту

Sophi
Дата: 16.01.2012 12:36:19
Как сделать? Все значения по полям совпадают кроме значений в двух (в дальнейшем будет 4 столбца - но я сама потом сделаю) столбцах, их необходимо записать в строке через запятую. Как это реализовать? Пример значений во вложении.
Разница есть в столбцах beam_name и e/s name.
Ессно мне нужно это запросом.

Спасибо. ;-)

Модератор: Пришел вопрос из сервисa "Сообщить модератору", о том, как исправить сообщение. Отвечаю:
http://www.sql.ru/forum/actualthread.aspx?tid=139276 #9
WRX
Дата: 16.01.2012 12:38:53
фото нет - проверил
alvk
Дата: 16.01.2012 12:51:14
Sophi,

конка... фото в профиль и слово откроется дальше
Sophi
Дата: 16.01.2012 13:05:00
Мальчики хотят фото рыжей-бестыжей?
hgfdsa
Дата: 16.01.2012 13:39:47
Sophi
Все значения по полям совпадают кроме значений в двух ...
Пример значений во вложении.
Разница есть в столбцах beam_name и e/s name.

В выложенном примере нет записей, дублирующихся по значениям всех полей, исключая beam_name и e/s name.
Sophi
Дата: 16.01.2012 13:54:00
hgfdsa,

точно ))) столбцы freq_mhz, freq_min, freq_max тоже надо через запятую склеить.
alvk
Дата: 16.01.2012 14:11:47
Sophi,

конкатенация, unionstr, famunion, сложение строк ---> поиск
Sophi
Дата: 16.01.2012 16:32:33
alvk,

я ни бум бум. Я умею тупо запросы делать. Просто сделайте пожалуйста такой запрос. Спасибо. )))
alvk
Дата: 17.01.2012 04:30:35
hgfdsa
Дата: 17.01.2012 07:38:12
Sophi, задачу можно решить примерно так (по мотивам 7279831):
Запрос
SELECT adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n,
       First(FieldToLine('Частот_Характ','beam_name',
      'adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n',
       adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n)) AS beam_name,
       First(FieldToLine('Частот_Характ','freq_mhz',
      'adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n',
       adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n)) AS freq_mhz,
       First(FieldToLine('Частот_Характ','freq_min',
      'adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n',
       adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n)) AS freq_min,
       First(FieldToLine('Частот_Характ','freq_max',
      'adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n',
       adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n)) AS freq_max,
       First(FieldToLine('Частот_Характ','[e/s name]',
      'adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n',
       adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n)) AS [e/s name]
FROM Частот_Характ
GROUP BY adm,sat_name,emi_rcp,gain,design_emi,ЧАСТОТА,pep_max,pep_min,pwr_ds_max,pwr_ds_min,[e/s antenna gain],polar_type,noise_t,c_to_n

и к нему функция
Public Function FieldToLine$(TableName$, FieldConcat$, FieldGroups$, ParamArray FieldValues())
Dim Adors As New ADODB.Recordset
Dim sq$, sv$, i&, FldGrp
  FldGrp = Split(FieldGroups, ",")
  For i = 0 To UBound(FieldValues)
    Select Case VarType(FieldValues(i))
      Case vbNull: sv = " Is Null"
      Case vbDate: sv = "=" & Format(FieldValues(i), "\#mm\/dd\/yyyy hh:nn:ss\#")
      Case vbString: sv = "='" & FieldValues(i) & "'"
      Case Else: sv = "=" & Str(FieldValues(i))
    End Select
    sq = sq & " And (" & FldGrp(i) & sv & ")"
  Next
  sq = "SELECT " & FieldConcat & " FROM " & TableName & " WHERE " & Mid(sq, 6)
  Adors.Open sq, CurrentProject.Connection, , , adCmdText
  If Not Adors.EOF Then FieldToLine = Adors.GetString(, , , ";")
  Adors.Close
  If Len(FieldToLine) > 0 Then FieldToLine = Left$(FieldToLine, Len(FieldToLine) - 1)
End Function

которую следует поместить в общий модуль.

P.S. А фото все таки выложите :)