Pytanie : Mysql Przechować proc przepustka wszystkie wartość pomoc

Cześć guys.

I dołączać zaopatrzony procedure.
For sklep, oznakować, odjeżdżać, subd, produkt, categ tkanina, sezon i zakup parametr, Jeżeli i chcieć WSZYSTKIE WARTOŚĆ,
Is tam  łatwy szybki sposób wtedy, using REGEXP i omijanie ono eg. "[- 0-9]" w the wezwanie dla everything.

is tam  sposób właśnie The parametr, więc być passed.

Like jeżeli GATUNEK = '' wtedy przechodzić ono '.

Hope który robić sens.
Kj
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
DELIMITER $$
OPADOWY PROCEDURA JEŻELI ISTNIEĆ `BW `$$
TWORZYĆ PROCEDURA `BW `(W SKLEP VARCHAR (2555),
                      W GATUNEK VARCHAR (2555),
                      W ODJEŻDŻAĆ VARCHAR (2555),
                      W SUBD VARCHAR (2555),
                      W PRODUKT VARCHAR (2555),
                      W CATEG VARCHAR (2555),
                      W TKANINA VARCHAR (2555),
                      W SEZON VARCHAR (2000),
                      W ZAKUP VARCHAR (2000),
                      W STYL VARCHAR (255),
                      W STARTDATE VARCHAR (255),
                      W ENDDATE VARCHAR (255))

ZACZYNAĆ

    USTAWIAĆ @BWS = CONCAT ("

Wybierać s.storename,
       s.storenumber,
       s.brandname,
       s.brandnumber,
       s.deptname,
       s.deptcode,
       s.subdname,
       s.subdcode,
       s.prodname,
       s.prodcode,
       s.catename,
       s.catecode,
       s.fabricname,
       s.fabricno,
       s.seasname,
       s.seascode,
       s.purchflagdescription,
       s.purchflagcode,
       s.stylecode,
       s.description,
       s.datefirstrecv,
       s.datelastrecv,
       suma (h.quantity) SPRZEDAWAĆ,
       s.datelastsold,


(wybrany ifnull (suma (h.quantity), (0))
od historia h
dokąd (h.stockcode = s.stockcode
i h.storenumber = s.storenumber)
i h.subtranstype = 6
i s.storenumber WEWNĄTRZ (", SKLEP, ")
i s.brandnumber WEWNĄTRZ (", GATUNEK, ")
i s.deptcode REGEXP ", ODJEŻDŻAĆ,"
i s.subdcode REGEXP ", SUBD,"
i s.prodcode REGEXP ", PRODUKT,"
i s.catecode REGEXP ", CATEG,"
i s.fabricno REGEXP ", TKANINA,"
i s.seascode REGEXP ", SEZON,"
i s.purchflagcode REGEXP ", ZAKUP,"
i s.stylecode LUBIĆ ", STYL,"
i (s.datefirstrecv lub s.datelastrecv lub s.datelastsold) być nieobowiązujący
i h.transdate między ", STARTDATE," i ", ENDDATE, ") jako QTYRECV,


(wybrany ifnull (suma (h.quantity), (0))
od historia h
dokąd (h.stockcode = s.stockcode
i h.storenumber = s.storenumber)
i h.subtranstype < "4"
i s.storenumber WEWNĄTRZ (", SKLEP, ")
i s.brandnumber WEWNĄTRZ (", GATUNEK, ")
i s.deptcode REGEXP ", ODJEŻDŻAĆ,"
i s.subdcode REGEXP ", SUBD,"
i s.prodcode REGEXP ", PRODUKT,"
i s.catecode REGEXP ", CATEG,"
i s.fabricno REGEXP ", TKANINA,"
i s.seascode REGEXP ", SEZON,"
i s.purchflagcode REGEXP ", ZAKUP,"
i s.stylecode LUBIĆ ", STYL,"
i (s.datefirstrecv lub s.datelastrecv lub s.datelastsold) być nieobowiązujący
i h.transdate między ", STARTDATE," i ", ENDDATE, ") ONHAND




od historia h WEWNĘTRZNY ŁĄCZYĆ styleperformance s
DALEJ (h.storenumber=s.storenumber
i h.stockcode=s.stockcode)
i h.subtranstype < "4"
i s.storenumber WEWNĄTRZ (", SKLEP, ")
i s.brandnumber WEWNĄTRZ (", GATUNEK, ")
i s.deptcode RLIKE ", ODJEŻDŻAĆ,"
i s.subdcode RLIKE ", SUBD,"
i s.prodcode RLIKE ", PRODUKT,"
i s.catecode RLIKE ", CATEG,"
i s.fabricno RLIKE ", TKANINA,"
i s.seascode RLIKE ", SEZON,"
i s.purchflagcode RLIKE ", ZAKUP,"
i s.stylecode LUBIĆ ", STYL,"
i (s.datefirstrecv lub s.datelastrecv lub s.datelastsold) być nieobowiązujący
i h.transdate między ", STARTDATE," i ", ENDDATE,"
grupa s.storenumber, s.stockcode
ROZKAZ SPRZEDAWAĆ DESC
OGRANICZENIE 20 ");

#SELECT @bws;
PRZYGOTOWYWAĆ b_w_s od @bws;
WYKONYWAĆ b_w_s;
DEALOKOWAĆ PRZYGOTOWYWAĆ b_w_s;

KOŃCZYĆ $$
DELIMITER;

DZWONIĆ "BW `("1,2,9,10", "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15","" [- 0-9] "","" [- 0-9] "","" [- 0-9] "","" [- 0-9] "","" [- 0-9a-z] "","" [- 0-9a-z] "","" [- 0-9a-z] '"," "%"", ""2010-06-01"", ""2010-07-03" ")

Odpowiedź : Mysql Przechować proc przepustka wszystkie wartość pomoc

i s.storenumber W (", SKLEP, ") ",
     SKRZYNKA GDY BRAND= "" wtedy "" inny concat ("i s.brandnumber W (", GATUNEK, ")") KOŃCÓWKA,
"i s.deptcode REGEXP", ODJEŻDŻAĆ, "

OK I brakować KOŃCÓWKA.
Podstawowy, sznurek ono znaczyć być, przy the część dokąd ty normalnie dodawać the sznurek

i s.brandnumber WEWNĄTRZ (", GATUNEK, ")

Twój folować SQL, ono sprawdzać dla czy Gatunek być "".  Jeżeli ono być puste miejsce, ono dodawać zapytanie the definitywny zapytanie.  Patrzeć właśnie the SKRZYNKA linia, ono robić przy:

     SKRZYNKA GDY BRAND= "" wtedy
         ""
     inny
         concat ("i s.brandnumber W (", GATUNEK, ")")
     KOŃCÓWKA,

W Ten Sposób ono either dodawać "i s.brandnumber w ()" jeżeli the gatunek filtr być pusty, lub nic (i tym samym the całkowity sql filtrować na gatunek).

Pozwalać jeżeli to być niejasny.
Inne rozwiązania  
 
programming4us programming4us