Столбец Временный счетчик SQL добавлен в возвращаемый набор результатов - PullRequest
0 голосов
/ 02 августа 2011

У меня есть следующий код, который объединит две разные таблицы и предоставит необходимые столбцы дискретных данных. Проблема в том, что мне также нужен столбец, который считает другой экземпляр из другой таблицы. См. Ссылку на указатель под оператором select.

  SELECT 
  //count(of records returned from below query and duplicates of those found in outc table),
  outage_duration.dgroup,
  outage_duration.cause,
  outage_duration.cdts,
  outage_duration.cust_minutes,
  outage_duration.evntnum,
  outage_duration.num_cust,
  outage_duration.outage_type,
  outage_duration.substation,
  outage_duration.feeder,
  outage_duration.out_minutes
  FROM outage_duration,
  aeven
  WHERE outage_duration.evntnum    = aeven.num_1
  AND aeven.outage_type            = 'T'
  AND aeven.cdts                  >= '20110101060000UT'
  AND aeven.curent                 = 'T'
  AND aeven.open_and_curent        = 'F'
  AND aeven.ag_id NOT             IN    ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC')
  AND outage_duration.out_minutes >= '240'
  AND outage_duration.curent = 'T' 
  GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes
  ORDER BY outage_duration.evntnum

Образец AEVEN, таблица Outage_Duration

num_1
T344490
T344410
T344480

outage_duration
T344490
T344410

Это вернет T344490 и T44410, что и делает вышеуказанный поиск. Теперь с этими результатами мне нужно взять счет из другой таблицы и отобразить счет в виде своего собственного столбца рядом с номером события, сколько случаев было в этой таблице.

outc (столбец 1 = уникальный идентификатор, столбец 2 = evntnum)

 1. 1, T344490
 2. 2, T344490
 3. 3, T344410
 4. 5, T344410
 5. 6, T344410
 6. 7, T344410
 7. 8, T344410

Желаемые результаты должны быть следующими:

 1. T344410, 5, "other columns that were specified"
 2. T344490, 2, "other columns that were specified"

Как мне это удастся?

1 Ответ

0 голосов
/ 02 августа 2011
SELECT 
  COUNT(*), --this
  outage_duration.dgroup,
  outage_duration.cause,
  outage_duration.cdts,
  outage_duration.cust_minutes,
  outage_duration.evntnum,
  outage_duration.num_cust,
  outage_duration.outage_type,
  outage_duration.substation,
  outage_duration.feeder,
  outage_duration.out_minutes
  FROM
      outage_duration
      JOIN
      aeven ON outage_duration.evntnum    = aeven.num_1
      JOIN
      outc ON outage_duration.evntnum = outc. --insert column here
  WHERE 
  AND aeven.outage_type            = 'T'
  AND aeven.cdts                  >= '20110101060000UT'
  AND aeven.curent                 = 'T'
  AND aeven.open_and_curent        = 'F'
  AND aeven.ag_id NOT             IN           ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC')
  AND outage_duration.out_minutes >= '240'
  AND outage_duration.curent = 'T' 
  GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes
  ORDER BY outage_duration.evntnum

Просто добавьте COUNT (*) к биту SELECT, а таблицу outc к FROM

У вас уже есть GROUP BY, так что просто слот itn

...