Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Вниз

Как правильно написать SQL   Найти похожие ветки 

 
Palladin ©   (2008-02-29 16:48) [40]

о, туплю и невнимателен, просшу просчения... у тебя же там функции стоят...


 
Palladin ©   (2008-02-29 16:58) [41]


> Yurij-7   (29.02.08 16:48) [39]

тогда все очень просто...

Var
Col,Cols,Rows:TStringList;
i,n:Integer;
strHTMLTable:String;

Cols:=TStringList.Create;
Rows:=TStringList.Create;
Cols.Sorted:=True;
Rows.Sorted:=True;
q.sql.text:="select город, состояние, count(продукт) from табличка group by город, состояние";
q.Open;
While not q.Eof Do
Begin
 n:=Rows.IndexOf(q.Fields[0].AsString);
 If n=-1 Then n:=Rows.AddObject(q.Fields[0].AsString,TStringList.Create);
 Col:=TStringList(Rows.Objects[n]);
 If Cols.IndexOf(q.Fields[1].AsString)=-1 Then Cols.Add(q.Fields[1].AsString);
 Col.AddObject(q.Fields[1].AsString,TObject(q.Fields[2].AsInteger));
 q.Next;
End;

strHTMLTable:="<table>";
For i:=0 to Rows.Count-1 Do
Begin
 Col:=TStringList(Rows.Objects[i]);
 Col.Sorted:=True;
 strHTMLTable:=strHTMLTable+"<tr>";
 For j:=0 to Cols.Count-1 Do
  Begin
   n:=Col.IndexOf(Cols[j]);
   If n=-1
    Then strHTMLTable:=strHTMLTable+"<td>0</td>"
    Else strHTMLTable:=strHTMLTable+"<td>"+IntToStr(Integer(Col.Objects[n]))+"</td>";
  End;
 strHTMLTable:=strHTMLTable+"</tr>";
 Col.Free;
End;
q.Close;

Cols.Free;
Rows.Free;


могут быть ошибки, писал здесь


 
palva ©   (2008-02-29 17:00) [42]


> того что нужно не 1,0, а количество товара сгруппированных
> по городу и состоянию о чем я тебе и сказал в Palladin ©
>   (29.02.08 14:54) [11]
>

Мой запрос выдает что-то другое?
Претензии ведь не к тому, что мой запрос выдает неправильные данные или работает неэффективно. Здесь вопросов не возникает.
Претензии к тому, что он кривой и имеет сущностные ошибки...


 
Johnmen ©   (2008-02-29 17:00) [43]


> palva ©   (29.02.08 16:44) [37]
> Сущностная? Чего-то не понимаю я в этой жизни.

Наверное.

Хотя, я не прав, и запрос [15] верен в сущности - не разлядел слова LEFT.


 
Johnmen ©   (2008-02-29 17:01) [44]


> Претензии к тому, что он кривой и имеет сущностные ошибки...

Сарказм неуместен, ИМХО.


 
Yurij-7   (2008-02-29 17:10) [45]

То: ANB   (29.02.08 16:22) [30]

А это под какую СУБД вы написали, просто у меян под MySQL не работает,
я так понимаю что конструкция вида
SELECT a.Город, (

SELECT count( Продукт )

не поддерживается ((((


 
Yurij-7   (2008-02-29 17:19) [46]

То: Palladin ©   (29.02.08 16:58) [41]

Спасибо за помощь, чесно сказать даже неудобно что вы столько кода написали.
но я это делаю через связку MySQL + PHP, в Делфи я то примерно понимаю как сделать ....


 
Yurij-7   (2008-02-29 17:24) [47]

То: Johnmen ©   (29.02.08 15:59) [21]

к сожалению вообще не работает ((


 
palva ©   (2008-02-29 17:29) [48]


Johnmen ©   (29.02.08 17:01) [44]
> Сарказм неуместен, ИМХО.

Извините, если обидел. Мне было важно найти изъян в своих собственных представлениях о мире и SQL.


 
Palladin ©   (2008-02-29 17:32) [49]


> Yurij-7   (29.02.08 17:19) [46]

если уловил суть содеяного, можешь и на PHP портировать
все что не касается Delphi постится в Прочее, что бы не путать отвечающих


 
Anatoly Podgoretsky ©   (2008-02-29 23:42) [50]

> Johnmen  (29.02.2008 14:53:09)  [9]

Даже если известно и неизменно, но это не отметает законов Паркинсона.EDе так уж и редок, если не заниматься батонокидательством. Вариант с Control гарантирует результат, вариант с Components не всегда.


 
Johnmen ©   (2008-03-01 02:26) [51]


> palva ©   (29.02.08 17:29) [48]
> Извините, если обидел.

Меня обидеть невозможно.
А то, что на "вы" - не извиню :)
И, кстати, надо было сразу же настаивать на верности своего ответа в доходчивой форме - типа "проверил - результат абсолютно верный"...

Yurij-7   (29.02.08 17:24) [47]
> То: Johnmen ©   (29.02.08 15:59) [21]
> к сожалению вообще не работает ((

Так это же схема. Ты что, следующие посты не читал???

Anatoly Podgoretsky ©   (29.02.08 23:42) [50]

Это пусть автор переживает. Его предупредили :))


 
Германн ©   (2008-03-01 02:46) [52]

Во! Именно тут APClient и перенервничал!
Anatoly Podgoretsky ©   (29.02.08 23:42) [50]


 
Anatoly Podgoretsky ©   (2008-03-01 02:47) [53]

> Германн  (01.03.2008 02:46:52)  [52]

Ну он не выдержал такого позора.


 
Anatoly Podgoretsky ©   (2008-03-01 02:48) [54]

> Anatoly Podgoretsky  (01.03.2008 02:47:53)  [53]

Кстати я в отпуске и запускаю свой сервер, наконец получил все железо.
А какие правильные SQL я буду на нем писать.


 
Германн ©   (2008-03-01 02:56) [55]


> Anatoly Podgoretsky ©   (01.03.08 02:48) [54]
>
> > Anatoly Podgoretsky  (01.03.2008 02:47:53)  [53]
>
> Кстати я в отпуске и запускаю свой сервер, наконец получил
> все железо.
> А какие правильные SQL я буду на нем писать.
>

Поздравляю! И с отпуском, и с получением железа. Зависть гложет меня по обоим пунктам :)
По поводу "правильных SQL", я надеюсь, мы ещё потрепемся. :)
(Хоть я и ламер в SQL :)


 
Yurij-7   (2008-03-02 13:59) [56]

Наконецто получилось инет возобновить.
спасибо всем за ответы, пошел по пути
Johnmen ©   (29.02.08 15:59) [21]

а именно
SELECT name, a.st1, a.st2, a.st3
FROM

(
SELECT braqnch_manager,
count( if(STATUS = "Статус1", 1, NULL ) ) AS st1,
count( if(STATUS = "Статус2", 1, NULL ) ) AS st2,
count( if(STATUS = "Статус3", 1, NULL ) ) AS st3
FROM cs
GROUP BY braqnch
) AS a

left JOIN spr_name ON branch = a.braqnch_manager
ORDER BY branch

Но что самое интересное не работает чтотос псевдонимами My SQL а именно ( запрос) as A а к нему присоединяю имена регионов .....

еслу у кого есть коментарии буду благодарен ...


 
Johnmen ©   (2008-03-02 14:55) [57]


> Yurij-7   (02.03.08 13:59) [56]

Ну, во-первых, я этого не предлагал, ни в каком виде. И предложить не мог, ибо на основании [19] запросы из запросов и вложенные запросы отсутствуют.
Я предлагал [21], уточнено [23].
Также стОит обратить внимание на [15].
А в общем настоятельно рекомендую всё же читать ответы. Все и внимательно.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.053 c
2-1204373153
GHT
2008-03-01 15:05
2008.03.30
высота строк и перенос слов в DBGrid


15-1202661027
ketmar
2008-02-10 19:30
2008.03.30
kpmc git repository


2-1204322758
ajsek
2008-03-01 01:05
2008.03.30
webbrowser открывался на новых вкладках


2-1204184366
pvr
2008-02-28 10:39
2008.03.30
Вызов метода прапрародителя


3-1194447563
Still Swamp
2007-11-07 17:59
2008.03.30
Вопрос по отправке сообщений SendMessage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский